这个问题在这里已经有了答案:
Subset data frame based on number of rows per group
(4 个回答)
4年前关闭。
我在 R 中使用 dplyr 包,并按 3 个变量(Year、Site、Brood)对我的数据进行分组。
我想摆脱由少于 3 行组成的组。例如,在下面的示例中,我想删除育雏“2”的行。我有很多数据可以做这件事,所以虽然我可以辛苦地手工完成,但使用 R 自动化它会很有帮助。
Year Site Brood Parents
1996 A 1 1
1996 A 1 1
1996 A 1 0
1996 A 1 0
1996 A 2 1
1996 A 2 0
1996 A 3 1
1996 A 3 1
1996 A 3 1
1996 A 3 0
1996 A 3 1
我希望这是有道理的,非常感谢您的帮助!我是 R 和 stackoverflow 的新手,如果我提出这个问题的方式不太好,我深表歉意!如果我需要提供任何其他信息,请告诉我。
最佳答案
一种方法是使用魔法 n()
内函数filter
:
library(dplyr)
my_data <- data.frame(Year=1996, Site="A", Brood=c(1,1,2,2,2))
my_data %>%
group_by(Year, Site, Brood) %>%
filter(n() >= 3)
n()
函数给出当前组中的行数(如果没有分组,则给出总行数)。
关于r - 如何删除R中包含少于3行数据的组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35271988/