【问题标题】:Select multiple rows conditioning on ID in R在R中选择多行以ID为条件
【发布时间】: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)

标签: r subset


【解决方案1】:

你想要%in%,而不是==

out <- test[test$ID %in% c(201, 202), ]
out <- subset(test, ID %in% c(201, 202))

【讨论】:

  • @MattDowle 这是 data.table-intro 小插图或常见问题解答的绝佳候选者!上周末我肯定踩到了这个地雷。
猜你喜欢
  • 1970-01-01
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-18
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多