03 构造 Data Frame
标签(空格分隔): R语言
1.用data.frame()函数
来建立一个Data Frame,如:
Names <- c("Jane", "Sam", "Jose", "Amy")
Ages <- c(42, 33, 39, 25)
Locations <- factor(c("West", "West", "South", "South"))
#以上创建了几个向量,现在把它们组合成一个data frame。
EmpData <- data. frame(Name=Names, Age=Ages, Location=Locations)
print(EmpData)
#输出
Name Age Location
1 Jane 42 West
2 Sam 33 West
3 Jose 39 South
4 Amy 25 South
同样是上面的例子,接下来试图调用data frame。
EmpData[1]
#输出一个列向量:
Name
1 Jane
2 Sam
3 Jose
4 Amy
或者
EmpData[,1]
#输出一个行向量
Name Age Location
1 Jane 42 West
或者,用列名或行名来调用一个方向上的数据也是OK的,比如使用:
EmpData[“Age”]就可以调用Age列的数据了。
同样,借助$也可以得到同样的结果,使用 EmpData$Age
2.查看data frame
当我们想查看某一个dataframe的时候,我们可以使用str()函数
来显示这个dataframe,如:
str(EmpData)
#输出:
'data.frame': 4 obs. of 3 variables:
$ Name : chr "Jane" "Sam" "Jose" "Amy"
$ Age : num 42 33 39 25
$ Location: Factor w/ 2 levels "South","West": 2 2 1 1
也可以使用summary()函数
来显示dataframe,如:
summary(EmpData)
#输出:
Name Age Location
Length:4 Min. :25.00 South:2
Class :character 1st Qu.:31.00 West :2
Mode :character Median :36.00
Mean :34.75
3rd Qu.:39.75
Max. :42.00
3.调用子集和添加列
接下来,尝试下调用Data Frame的子集,比如,只调用Name与Age两组数据,则:
SubFrame <- data.frame(Name=EmpData$Name, Age=EmpData$Age)
#输出:
Name Age
1 Jane 42
2 Sam 33
3 Jose 39
4 Amy 25
或者,通过行列的位置来调用,比如:
SubFrame <- EmpData[2:3]
#输出:
Name Age Location
2 Sam 33 West
3 Jose 39 South
添加一个列呢,有以下列子:
HireDates <- as.Date(c("2001/10/15", "2012/05/30",
"2010/06/28", "2014/04/02"))
EmpData$HireDate <- HireDates
#这样,就在EmpData中添加了HierDates这一项。
添加行向量。使用rbind()函数
,如:
NewEmp <- data.frame(
Name = "Kerry",
Age = 51,
Location = "West",
HireDate = as.Date("2016/06/28"),
stringsAsFactors = FALSE)
EmpData <- rbind(EmpData, NewEmp)
#输出:
Name Age Location HireDate
1 Jane 42 West 2001-10-15
2 Sam 33 West 2012-05-30
3 Jose 39 South 2010-06-28
4 Amy 25 South 2014-04-02
5 Kerry 51 West 2016-06-28
顺带一提,$也是可以用于添加列向量的