在对数据帧进行子集化时选择未定义的列

Cre*_*tat 65 r subset dataframe

我有一个数据框,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 ...
Run Code Online (Sandbox Code Playgroud)

但是,例如,当我想要Ozone超过14 的数量的子集时,我使用以下代码,这给了我一个错误:

>  data[data$Ozone > 14 ]
Run Code Online (Sandbox Code Playgroud)

[.data.frame(data,data $ Ozone> 14)出错:选择了未定义的列

Ari*_*man 120

你想要条件为真的行,所以你需要一个逗号:

data[data$Ozone > 14, ]
Run Code Online (Sandbox Code Playgroud)

  • 为什么......这种语法对我来说毫无意义 (11认同)
  • `dat [1,2]`为你提供第一行第二列的条目.`dat [1,]`为你提供第一行中的每个条目.`dat [1:5,]`为你提供1-5行的每一列. (6认同)
  • 这是153 x 6,这是两个维度. (5认同)
  • @Reinderien 这是索引数组的常用方法。查看旧式 R 文档,它实际上非常擅长教授数据结构。 (3认同)
  • 我得到了除逗号之外的所有内容。 (2认同)