【问题标题】:R Select rows based on condition in another column [duplicate]R根据另一列中的条件选择行[重复]
【发布时间】:2018-07-27 12:14:53
【问题描述】:

如何选择这些 ID 中至少有一个 B 作为项目的所有行?

df<-cbind(c(1,1,1,1,1,2,2,2,2,3,3),c("A","A","B","A","A","B","A","A","B","A","A"))
colnames(df)<-cbind("ID","ITEM")
df

【问题讨论】:

  • library(dplyr);df %&gt;% group_by(ID) %&gt;% filter(any(ITEM == "B"))

标签: r


【解决方案1】:

不确定这是不是你的意思,但是:

df[df[, 2]=="B", ]

【讨论】:

  • thx,但请阅读我的规范:我选择那些 ID 的所有行,其中至少有一个 B 作为项目,对于这个例子,这意味着:给我 ID 1 和 ID 2 的所有行(但 ID 3 没有行,因为 ID 3 在任何项目中都没有 B)。您的查询只会导致所有行都带有 B。
【解决方案2】:

如果您构建数据框而不是使用列表,这很容易。

library(dplyr)
df<-data.frame(ID = c(1,1,1,1,1,2,2,2,2,3,3),ITEM=c("A","A","B","A","A","B","A","A","B","A","A"));

df %>% filter(ITEM == "B");

【讨论】:

  • 谢谢,但请阅读我的规范:选择那些 ID 的所有行,其中至少有一个 B 作为 Item,对于这个例子,这意味着:给我 ID 1 和 ID 2 的所有行(但 ID 3 没有行,因为 ID 3 在任何项目中都没有 B)。您的查询只会导致所有行都带有 B。
  • Ronak Shah 给出了正确答案
猜你喜欢
  • 2016-02-23
  • 2015-06-22
  • 1970-01-01
  • 2020-10-10
  • 1970-01-01
  • 1970-01-01
  • 2021-09-09
  • 2014-07-23
  • 2021-03-31
相关资源
最近更新 更多