【问题标题】:R: index into dataframe by multiple column valuesR:通过多列值索引到数据框
【发布时间】:2016-04-02 19:05:36
【问题描述】:

我是 R 的初学者,在使用列值向量索引数据帧时遇到问题。

我想从 2 个参与者中选择所有行。

data 是数据框。参与者是一个列

data[data$participant == c(8, 10),])

我认为这应该给我参与者 8 和 10 的所有行,但它却给了我参与者 8 的一半和参与者 10 的一半。换句话说,

dim(data[data$participant == c(8, 10),])dim(data[data$participant == 8,])dim(data[data$participant == 10,]) 相同,而不是双精度。

问题似乎出在索引这些多列类型的语法上: data$participant == c(8, 10)

如果您提供有关如何执行此操作的任何提示,我将不胜感激(无需分别对每个参与者进行操作)!谢谢!

【问题讨论】:

    标签: r indexing dataframe


    【解决方案1】:

    对于多个值,使用%in%获取逻辑向量。

    data[data$participant %in% c(8, 10),]
    

    当我们使用 ==c(8,10) 时,它会将 8 和 10 即 8,10, 8, 10, 8, 10... 等回收到“参与者”列的长度。因此,如果参与者中的第一个值为 8,它将返回 TRUE,但如果第二个值为 8,它将变为 FALSE,因为对应的元素将为 10。

    【讨论】:

      猜你喜欢
      • 2019-04-05
      • 1970-01-01
      • 2020-08-06
      • 1970-01-01
      • 2019-05-15
      • 2020-10-31
      • 2020-08-01
      • 2018-10-17
      • 2016-08-06
      相关资源
      最近更新 更多