【问题标题】:R programming_ Subsetting rows on logic conditionsR编程逻辑条件中的子集行
【发布时间】:2017-11-03 19:24:42
【问题描述】:

样本数据:

样本数据

Ozone Solar.R Wind Temp Month Day sampleData.Ozone

1      41     190  7.4   67     5   1               41

2      36     118  8.0   72     5   2               36

3      12     149 12.6   74     5   3               12
.........

想要提取条件$ozone > 31的记录

代码如下:

data <- sampleData[sampleData$ozone > 31]

并得到以下错误:

if (inherits(X[[j]], "data.frame") && ncol(xj) > 1L) X[[j]]

我应该如何纠正它?谢谢!

【问题讨论】:

    标签: r dataframe subset


    【解决方案1】:

    R 区分大小写,因此您的 ozone 必须与您的 data.frame 中的名称匹配。同样要对data.frame 进行子集化,您需要两个用逗号分隔的索引(行和列)。如果逗号后面没有任何内容,则表示您正在选择所有

    sampleData[sampleData$Ozone > 31,]
    

    data.frame 进行子集化的其他方法:

    subset(sampleData, Ozone > 31)
    

    dplyr:

    library(dplyr)
    sampleData %>%
      filter(Ozone > 31)
    

    结果:

      Ozone Solar.R Wind Temp Month Day sampleData.Ozone
    1    41     190  7.4   67     5   1               41
    2    36     118  8.0   72     5   2               36
    

    数据:

    sampleData = structure(list(Ozone = c(41L, 36L, 12L), Solar.R = c(190L, 118L, 
    149L), Wind = c(7.4, 8, 12.6), Temp = c(67L, 72L, 74L), Month = c(5L, 
    5L, 5L), Day = 1:3, sampleData.Ozone = c(41L, 36L, 12L)), .Names = c("Ozone", 
    "Solar.R", "Wind", "Temp", "Month", "Day", "sampleData.Ozone"
    ), class = "data.frame", row.names = c("1", "2", "3"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 2021-06-16
      • 2021-07-01
      相关资源
      最近更新 更多