R:通过多个列值对数据帧进行索引

mai*_*-sh 4 indexing r dataframe

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

我想选择 2 位参与者的所有行。

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

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

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

dim(data[data$participant == c(8, 10),])与 double相同dim(data[data$participant == 8,])dim(data[data$participant == 10,])不同。

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

我将不胜感激任何关于如何做到这一点的提示(无需单独为每个参与者做)!谢谢你!

akr*_*run 5

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

data[data$participant %in% c(8, 10),]
Run Code Online (Sandbox Code Playgroud)

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