数据框的定义及相关操作

原理

与矩阵类似,数据框是用来保存和访问一些不同类型变量的结构,数据框可以通过上文提到read.csv() 函数生成,可以用is.data.frame()来判断是否为数据框,还可以用as.data.frame() 函数将矩阵强制转化为数据框

步骤

判断R自带的数据集longley是否为数据框:

> is.data.frame(longley)

[1] TRUE

数据框的定义及相关操作_第1张图片

如果想要选取数据框中的某一列,可以用$符号。比如想要查看数据框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 ...

数据框的定义及相关操作_第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

数据框的定义及相关操作_第3张图片

检索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

数据框的定义及相关操作_第4张图片

检索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

数据框的定义及相关操作_第5张图片

你可能感兴趣的:(数据框的定义及相关操作)