如何解决筛选器和子集功能仅隐藏行而不删除吗?
我正在尝试删除一个虚构实验中的某些试验,但是过滤器/子集功能似乎只是在隐藏行,而不能完全消除它们。
例如使用虹膜样本数据:
> xtabs(Sepal.Length~Species,data=iris,)
Species
setosa versicolor virginica
250.3 296.8 329.4
> iris2 <- subset(iris,Species!="virginica")
> xtabs(Sepal.Length~Species,data=iris2)
Species
setosa versicolor virginica
250.3 296.8 0.0
> iris3 <- filter(iris,Species=="virginica")
> xtabs(Sepal.Length~Species,data=iris3)
Species
setosa versicolor virginica
0.0 0.0 329.4
在全球环境中,数据框似乎具有正确数量的观测值,但仍保持过滤/细分的因子不变。我也不能使用任何形式的“删除NA”或“删除0”功能,因为它们不是0,它们只是不可见。如何完全摆脱这些行?
解决方法
过滤数据框不会更改因子级别的数量。
iris %>%
filter(Species == "virginica") %>%
pull(Species) %>%
levels(.)
[1] "setosa" "versicolor" "virginica"
如果您不想汇总所有级别,则需要删除没有数据的级别。
iris3 <- filter(iris,Species=="virginica") %>%
mutate(Species = fct_drop(Species))
xtabs(Sepal.Length~Species,data=iris3)
Species
virginica
329.4
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。