我使用dplyr函数创建一个包含少于4行的名称的新数据集。
df <- data.frame(name = c("a", "a", "a", "b", "b", "c", "c", "c", "c"), x = 1:9)
aa = df %>%
group_by(name) %>%
filter(n() < 4)
但是当我输入
时table(aa$name)
我明白了,
a b c
3 2 0
我希望我的输出如下
a b
3 2
如何将新帧aa与df完全分开?
答案 0 :(得分:6)
要完成您的答案和KoenV的评论,您可以在一行中编写解决方案或应用函数factor
将删除未使用的级别:
table(droplevels(aa$name))
table(factor(aa$name))
或者因为您在最后使用dplyr
添加droplevels
:
aa <- df %>%
group_by(name) %>%
filter(n() < 4) %>%
droplevels()
table(aa$name)
# Without using table
df %>%
group_by(name) %>%
summarise(count = n()) %>%
filter(count < 4)
答案 1 :(得分:0)
aaNew <- droplevels(aa)
table(aa$name)