实验目的
熟悉并掌握R语言中数据框的定义及相关操作
实验原理
与矩阵类似,数据框是用来保存和访问一些不同类型变量的结构,数据框可以通过上文提到read.csv() 函数生成,可以用is.data.frame()来判断是否为数据框,还可以用as.data.frame() 函数将矩阵强制转化为数据框
实验步骤
判断R自带的数据集longley是否为数据框:
> is.data.frame(longley)
[1] TRUE
如果想要选取数据框中的某一列,可以用$符号。比如想要查看数据框longley的Unemployed列就可以用longley$Unemployed。由于数据框可以处理许多不同类型的数据,所以R中有很多模型函数都偏好数据框这种格式。比如str()就可以显示数据框的结构,具体见下例:
> str(longley)
'data.frame': 16 obs. of 7 variables:
$ GNP.deflator: num 83 88.5 88.2 89.5 96.2 ...
$ GNP : num 234 259 258 285 329 ...
$ Unemployed : num 236 232 368 335 210 ...
$ Armed.Forces: num 159 146 162 165 310 ...
$ Population : num 108 109 110 111 112 ...
$ Year : int 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 ...
$ Employed : num 60.3 61.1 60.2 61.2 63.2 ...
简单来说,数据框就是各种不同类型但是长度相同的变量列表的集合。想要选取数据框的子集可以用取子集操作符, R中的取子集操作符很强大,它可以用很简洁的语句表示复杂的操作,例如下面的代码提取longley数据集的第四列:
> longley[,4]
[1] 159.0 145.6 161.6 165.0 309.9 359.4 354.7 335.0 304.8 285.7 279.8 263.7 255.2 251.4 257.2 282.7
检索longley数据集的前两行:
> longley[1:2,]
GNP.deflator GNP Unemployed Armed.Forces Population Year Employed
1947 83.0 234.289 235.6 159.0 107.608 1947 60.323
1948 88.5 259.426 232.5 145.6 108.632 1948 61.122
检索longley数据集中年份为1950的记录:
> longley[longley$Year==1950,]
GNP.deflator GNP Unemployed Armed.Forces Population Year Employed
1950 89.5 284.599 335.1 165 110.929 1950 61.187