【问题标题】:Undefined columns selected when subsetting data frame子集数据框时选择了未定义的列
【发布时间】:2013-10-12 21:40:18
【问题描述】:

我有一个数据框,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 ...

但是,例如,当我想将 Ozone 的数量设置为 14 以上时,我使用以下代码,这给了我一个错误:

>  data[data$Ozone > 14 ]

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

【问题讨论】:

  • 你少了一个逗号。该错误告诉您,您没有指明要在子集中包含哪些列。
  • 换句话说,记住数据框引用需要行和列标识符。您可以只选择一列或所有列,但您需要指明您想要什么。
  • 我正在做同样的任务,所以我知道这是家庭作业。弱酱。

标签: r dataframe subset


【解决方案1】:

您想要条件为真的行,因此您需要一个逗号:

data[data$Ozone > 14, ]

【讨论】:

  • 为什么...这种语法对我来说毫无意义
  • @Reinderien 这是索引数组的常用方法。查看老式的 R 文档,它实际上非常擅长教授数据结构。
  • 我得到了除了逗号之外的所有内容。
  • dat[ 1, 2 ] 为您提供第一行第二列中的条目。 dat[ 1, ] 为您提供第一行中的每个条目。 dat[ 1:5, ] 为您提供第 1-5 行的每一列。
  • 它是 153 x 6,是二维的。
猜你喜欢
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 2014-07-03
  • 2019-12-30
  • 1970-01-01
  • 2016-07-02
  • 2021-04-14
  • 1970-01-01
相关资源
最近更新 更多