R 排除数据框中的特定类型

R 排除数据框中的特定类型,r,dplyr,R,Dplyr,我最近遇到了一个问题,我需要按数据帧的类型排除其特定属性。这里有一个非常简单的例子来复制我的问题 library(tidyverse) iris %>% select_if(is.numeric) iris %>% select_if(!is.factor) 虽然第一条管道可以工作,但第二条管道不能。虽然如果我只有两种不同的类型(如示例中所示),这没有问题,但我正在处理一个包含多个(可能未知)类型的数据帧。在我的情况下,名单将被排除在外 包括所有其他类型可能暂时有效,但

我最近遇到了一个问题,我需要按数据帧的类型排除其特定属性。这里有一个非常简单的例子来复制我的问题

library(tidyverse)

iris %>%
  select_if(is.numeric)

iris %>%
  select_if(!is.factor)
虽然第一条管道可以工作,但第二条管道不能。虽然如果我只有两种不同的类型(如示例中所示),这没有问题,但我正在处理一个包含多个(可能未知)类型的数据帧。在我的情况下,名单将被排除在外


包括所有其他类型可能暂时有效,但这很乏味,我仍然不知道如何轻松地选择多个类型,而不从多个数据帧中加入这些类型。

我们可以使用
否定

iris %>%
   select_if(Negate(is.factor))
或者使用
~

iris %>%
    select_if(~ !is.factor(.))