modify_if 在数据框上

modify_if on a data frame

我不是在摸索 purrr::modify_if 语法中的一些基本知识。

说我想做点傻事 -- 取任何名称长度为 2 个字符的变量,然后将其剪切。

这是我的尝试:

library(tidyverse)
library(stringr)
library(magrittr)

mtcars %>% 
   modify_if(~. %>% 
          names %>%
          str_length %>%
          equals(2),
      function(i)
         cut_number(i, n = 2))

如何在第一个参数中传递一组逻辑预测?

正如@thelatemail 指出的那样,问题是 returns 逻辑谓词需要查看 name 属性的第一个函数。解决这个问题:

mtcars %>% 
   modify_if(mtcars %>% 
      names %>% 
      str_length %>% 
      equals(2),
   function(i) 
      i %>% 
      cut_interval(n = 2))