如何在R中根据列保留重复值但删除唯一值

5
如何保留重复值,同时根据一个列(qol)删除唯一值?
ID   qol  Sat
A     7   6
A     7   5
B     3   3 
B     3   4
B     1   7
C     2   7
c     1   2

但我需要这个:
ID   qol  Sat
A     7   6
A     7   5
B     3   3 
B     3   4

我能做什么?

1个回答

8
library(dplyr)

ID <- c("A", "A", "B", "B", "B", "C", "c")
qol <- c(7,7,3,3,1,2,1)
Sat <- c(6,5,3,4,7,7,2)

test_df <- data.frame(cbind(ID, qol, Sat))

filtered_df <- test_df %>%
               group_by(qol) %>%
               filter(n()>1)

请注意,此操作将返回以下结果:
       ID    qol    Sat
1      A      7      6
2      A      7      5
3      B      3      3
4      B      3      4
5      B      1      7
6      c      1      2

如果您还想删除qol==1但ID不同的两行,只需要执行以下操作:
filtered_df <- test_df %>%
               group_by(ID, qol) %>%
               filter(n()>1)

这将返回你在问题中提供的示例输出。

谢谢您的回复,但我正在尝试编写一段代码来提取ID和qol列重复的行,从而省略最后三行。 - lesa Bee
我收回之前的评论,我已经让你的代码运行起来了。 - lesa Bee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接