r - 使用 which() 从数据集中过滤掉列
问题描述
我正在处理mtcars
数据集。我正在尝试创建一个仅包含非整数列的新数据集。为此,我尝试了几件事,主要尝试lapply
像这样使用:
> newdata <- lapply(mtcars, Negate(is.integer))
但这并没有返回我需要的东西。在练习中,有人告诉我们 which() 可以帮助我们做到这一点,所以我问 - 怎么做?谢谢
解决方案
你可以做:
iris[sapply(iris, Negate(is.factor))]
Sepal.Length Sepal.Width Petal.Length Petal.Width
1 5.1 3.5 1.4 0.2
2 4.9 3.0 1.4 0.2
3 4.7 3.2 1.3 0.2
4 4.6 3.1 1.5 0.2
5 5.0 3.6 1.4 0.2
6 5.4 3.9 1.7 0.4
7 4.6 3.4 1.4 0.3
8 5.0 3.4 1.5 0.2
9 4.4 2.9 1.4 0.2
10 4.9 3.1 1.5 0.1
在这里,为了说明,我使用了 iris 数据集并过滤掉了因素。