r - 如何删除R中包含少于3行数据的组?

标签 r rows

这个问题在这里已经有了答案:





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/

相关文章:

r - 如何在插入符号火车中指定 minbucket?

r - 生成随机字符串

php - 组织这些表+行的最有效方法是什么? - MySQL

MySQL:具有 10+ 百万行的索引表

pdf-generation - iTextSharp - 使用 Colspan 和 PdfPRow

r - 区别 : "Compile PDF" button in RStudio vs. knit() 和 knit2pdf()

python - 如何在 R 中迭代时动态修改向量

r - 加入 dplyr 时如何指定 x 和 y 的列名称?

jQuery Mobile 和文本区域行

mysql - 查找每个人的第一、第二、第三等记录