在R中选择多行以ID为条件
Posted
技术标签:
【中文标题】在R中选择多行以ID为条件【英文标题】:Select multiple rows conditioning on ID in R 【发布时间】:2011-12-06 05:24:59 【问题描述】:我尝试根据 ID 选择行。例如,在一个名为test
的数据框中,ID 201 有 6 行数据,ID 202 也有 6 行数据,还有 203、204……等等。
现在我只想从数据集中提取 201 和 202,所以它应该总共有 12 行。不过
out <- test[test$ID==c(201,202), ]
out <- subset(test, ID==c(201,202))
只返回三个201和三个202,分别是Row 1、Row 3、Row of 5 8 10 12。
谁能提供一些建议,告诉我如何在 R 中做到这一点?
【问题讨论】:
如果你想知道 为什么 你得到了你所做的,==
会逐元素比较并在一个向量用完时回收它。所以它只是用 201 和 202 交替检查 ID 列。%in%
答案是最好的,但你也可以使用subset(test, ID == 201 | ID == 202)
【参考方案1】:
你想要%in%
,而不是==
。
out <- test[test$ID %in% c(201, 202), ]
out <- subset(test, ID %in% c(201, 202))
【讨论】:
@MattDowle 这是 data.table-intro 小插图或常见问题解答的绝佳候选者!上周末我肯定踩到了这个地雷。以上是关于在R中选择多行以ID为条件的主要内容,如果未能解决你的问题,请参考以下文章