【问题标题】:Exclude columns by names in mutate_at in dplyr在 dplyr 的 mutate_at 中按名称排除列
【发布时间】:2017-11-15 21:42:17
【问题描述】:

我正在尝试做一些非常简单的事情,但无法找出正确的指定方法。我只是想从mutate_at 中排除一些命名列。如果我指定位置,它工作正常,但我不想硬编码位置。

例如,我想要与此相同的输出:

mtcars %>% mutate_at(-c(1, 2), max)

但是,通过指定 mpgcyl 列名。

我尝试了很多东西,包括:

mtcars %>% mutate_at(-c('mpg', 'cyl'), max)

有没有办法处理mutate_at 中的名称和排除项?

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    您可以使用vars 指定列,其工作方式与select() 相同,并允许您使用- 排除列:

    mtcars %>% mutate_at(vars(-mpg, -cyl), max)
    

    【讨论】:

      【解决方案2】:

      一种选择是在one_of 中传递字符串

      mtcars %>% 
           mutate_at(vars(-one_of("mpg", "cyl")), max)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-21
        • 1970-01-01
        • 1970-01-01
        • 2018-01-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多