子集数据框时选择了未定义的列


79

我有一个数据框,str(data)以显示有关我的数据框的更多信息,结果如下:

> str(data)
'data.frame':   153 obs. of  6 variables:
$ Ozone  : int  41 36 12 18 NA 28 23 19 8 NA ...
$ Solar.R: int  190 118 149 313 NA NA 299 99 19 194 ...
$ Wind   : num  7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
$ Temp   : int  67 72 74 62 56 66 65 59 61 69 ...
$ Month  : int  5 5 5 5 5 5 5 5 5 5 ...
$ Day    : int  1 2 3 4 5 6 7 8 9 10 ...

但是,例如,当我想对Ozone14以上的金额进行子集化时,我使用以下代码给我一个错误:

>  data[data$Ozone > 14 ]

错误[.data.frame(数据,数据$臭氧> 14):选择的未定义的列


11
您缺少逗号。该错误告诉您没有指示要在子集中包含哪些列。
里卡多·萨波特塔

1
换句话说,请记住数据帧引用需要行和列标识符。您只能选择一列或所有列,但是需要指出所需的内容。
Scott C Wilson

6
我正在从事相同的任务,所以我知道这是家庭作业。酱汁弱。
Brian MacKay 2015年

Answers:


152

您需要满足该条件的行,因此需要逗号:

data[data$Ozone > 14, ]

18
为什么......这句法是没有意义的我
Reinderien

3
@Reinderien这是索引数组的常用方法。查看旧式的R文档,它实际上非常擅长于讲授数据结构。
阿里·弗里德曼

2
除了逗号以外,我什么都知道。
Reinderien 2015年

11
dat[ 1, 2 ]在第一行第二列中为您提供条目。 dat[ 1, ]在第一行为您提供所有条目。dat[ 1:5, ]给您第1-5行的每一列。
阿里·弗里德曼

6
尺寸为153 x 6,即二维。
Ari B. Friedman
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.