R:按多个列值索引到数据框

标签 r indexing dataframe

我是 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/

相关文章:

r-从数据框中同一行中的两个点创建线串

indexing - AWS DynamoDB v2 : Do I need secondary index for alternative queries?

Mongodb低基数索引

python - 如何有效地替换 pandas 列中日期时间值的时间部分?

sql - 根据 SQL 或 R 中的某些条件复制行

r - 使用cbind从两个向量创建数据帧

performance - MongoDB - 在数组中搜索是否与在普通键中搜索一样快?

python - 在python中叠加两个单独的直方图

scala - 使用 Spark DataFrame 获取列上的不同值

r - 将 ggplot 中的背景部分更改为不同的颜色