【发布时间】:2020-10-23 18:12:18
【问题描述】:
我想知道是否有一种方法可以将 ifelse 语句和过滤器函数(在 dplyr 包中)组合成一个数据帧的子集。考虑数据
df<-data.frame(id=c(1,1,1,2,2,2,2,3,3),
A=c(3,6,2,5,4,3,8,9,8),
D1=c(0,0,0,1,1,0,0,0,0),
D2=c(1,0,0,0,0,1,1,0,1))
我想为每个 id 删除 D2=1 或 D1=D2=0 之后的行。预期的输出看起来像
df<-data.frame(id=c(1,2,2,2,3),
A=c(3,5,4,3,9),
D1=c(0,1,1,0,0),
D2=c(1,0,0,1,0))
我已经多次尝试使用 group_by 和 filter 函数来解决这个问题,但似乎需要条件语句,但我发现很难将这些与 filter 函数结合起来。我遇到了几个关于子集数据的问答(例如How to subset data by filtering and grouping efficiently in R),但这些都没有回答我的问题。我非常感谢您对此提供的任何帮助。
【问题讨论】:
-
其中一个答案是否解决了您的问题,TRichard?如果有,请采纳。谢谢!
标签: r dataframe filter dplyr subset