基于每组行数的子集数据帧我有这样的数据,其中一些“名字”出现超过3次:df <- data.frame(name = c("a", "a", "a", "b", "b", "c", "c", "c", "c"), x = 1:9)
name x1 a 12 a 23 a 34 b 45 b 56 c 67 c 78 c 89 c 9我希望根据每个级别中的行数(观察)对数据进行子集(筛选)。name变量。如果某一水平name发生3次以上,我要删除属于该级别的所有行。所以在这个例子中,我们会删除观察name == c,因为有> 3该组中的行: name x1 a 12 a 23 a 34 b 45 b 5我写了这段代码,但没能让它起作用。as.data.frame(table(unique(df)$name))subset(df, name > 3)
2 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
dplyr
df %>% group_by(name) %>% filter(n() < 4)# A tibble: 5 x 2# Groups: name [2] name x <fct> <int>1 a 12 a 23 a 34 b 45 b 5
n()
group_by
- 2 回答
- 0 关注
- 558 浏览
添加回答
举报
0/150
提交
取消