我最近遇到了一个问题,我需要按类型排除数据框的特定属性。这是一个用它来复制我的问题的一个非常简单的例子。
library(tidyverse)
iris %>%
select_if(is.numeric)
iris %>%
select_if(!is.factor)
当第一个管道工作时,第二个管道不工作。虽然如果我只有两个不同的类型(例如示例),这不是问题,但我正在使用包含多个(可能未知)类型的数据框。在我的情况下,列表将被排除。
包括所有其他类型可能现在可以使用,但是很乏味,我仍然不知道如何在不从多个数据框中连接这些类型的情况下轻松选择多种类型。
答案 0 :(得分:2)
我们可以使用Negate
iris %>%
select_if(Negate(is.factor))
或~
iris %>%
select_if(~ !is.factor(.))