给定特定条件,我有一个包含一些重复项的数据框,我想将其删除。
我有一列(column_A),其中包含分析结果。我的数据框中的某些 ID 有两个结果,这就是 ID 重复发生的原因。我想保留column_A ==“analysisB”的行,如果“id_no”中的ID在column_A中同时具有“analysisA”和“analysisB”,否则不要删除一行。
(请注意,我正在运行的原始数据框有多个其他字符和数字列)
虚拟数据:
structure(list(id_no = structure(c(1L, 2L, 2L, 3L, 4L, 4L), .Label = c("A",
"B", "C", "D"), class = "factor"), column_A = structure(c(1L,
1L, 2L, 2L, 1L, 2L), .Label = c("analysisA", "analysisB"), class = "factor")), .Names = c("id_no",
"column_A"), row.names = c(NA, -6L), class = "data.frame")
看起来像这样:
id_no column_A
A analysisA
B analysisA
B analysisB
C analysisB
D analysisA
D analysisB
预期输出:
id_no column_A
A analysisA
B analysisB
C analysisB
D analysisB
有没有办法用 dplyr 做到这一点?我没有让它与 filter() 的条件过滤一起正常工作。
这会做吗?
data.df%>%
group_by(id_no)%>%
mutate(analysis_count=1:n(),singleton=n()==1)%>%
ungroup()%>%
filter(singleton|analysis_count==2)%>%
select(-analysis_count, -singleton)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句