问题
根据数据的位置从数据框中选取出若干列。
解决方案
选择一列数据的操作如下:
代码
dfrm[[n]]
这会返回一列数据,即dfrm中的第n列。
要从数据框中选择多列数据并将其包装成新的数据框,用下面的的表达式:
代码
dfrm[n]
这会返回一个仅仅由dfrm的第n列数据构成的数据框。
代码
dfrm[ c(n1, n2,……,nk) ]
这会返回由dfrm的n1、n2、……、nk列构成的数据框。还可以用矩阵下标风格的方式选择一列或多列数据:
代码
dfrm[, n]
返回的是第n列(假设n只含有一个数值)。
代码
dfrm[, c(n1, n2, …, nk)]
返回的是由n1, n2,…, nk列构成的数据框。
注意,根据你选择的是一列还是多列,矩阵下标风格可以返回两种数据类型(单列或数据框)。
讨论
有很多从数据框中选择列的方法。在你弄明白这其中的逻辑关系之前,你肯定是一头雾水。在你阅读下面的解释时,要注意语法上的细微变化,例如一个逗号,一个双括号之类的小玩意对表达式含义的影响。
然我们来摆弄一下芝加哥地区16个大城市的人口数据:
代码
> suburbs
city county state pop
1 Chicago Cook IL 2853114
2 Kenosha Kenosha WI 90352
3 Aurora Kane IL 171782
4 Elgin Kane IL 9