【问题标题】:How to the operator NOT with is.numeric [duplicate]如何操作员不使用 is.numeric [重复]
【发布时间】:2021-12-27 13:39:17
【问题描述】:

我想使用 tidyverse 的 select_if 选择所有非数字变量。

我试过了:

mydata.dataframe %>%
  select_if(!is.numeric)

但我有一条错误消息。 请问正确的做法是什么。

【问题讨论】:

    标签: r tidyverse


    【解决方案1】:

    函数(x)的另一种简写方式

    mydata.dataframe %>%
      select(where( ~ !is.numeric(.x)))
                
    

    【讨论】:

      【解决方案2】:

      is.numeric 是一个函数。相比之下,! 否定 逻辑值。将! 应用于函数是没有意义的。您需要调用该函数并将其结果取反。

      通常你会做以下事情:

      select_if(function (x) ! is.numeric(x))
      

      或者,使用 tidyeval 的 lambda 表示法:

      select_if(~ ! is.numeric(.x))
      

      但是 R 有一个函数工厂来否定函数的结果:

      select_if(Negate(is.numeric))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-15
        • 2018-12-26
        • 2011-11-12
        • 1970-01-01
        • 1970-01-01
        • 2018-07-08
        • 1970-01-01
        相关资源
        最近更新 更多