我是 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)
我将不胜感激有关如何执行此操作的任何提示(无需单独执行每个参与者)!谢谢!
最佳答案
对于多个值,使用 %in%
获取逻辑向量。
data[data$participant %in% c(8, 10),]
当我们将
==
与 c(8,10)
一起使用时,它会将 8 和 10 即 8,10, 8, 10, 8, 10... 等回收到“参与者”列的长度。因此,如果参与者中的第一个值是 8,它将返回 TRUE,但如果第二个值是 8,它将变为 FALSE,因为相应的元素将为 10。
关于R:按多个列值索引到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36377569/