如何在使用dplyr 0.8.1的所有列中的函数内部打印列名

时间:2019-05-24 22:48:05

标签: r dplyr

我在以前的dplyr(0.8.0.1)版本下具有工作功能,但是现在它打印点而不是列名。

打印仅是一种虚拟方法。在我的真实代码中,我在sweetalert消息中打印列名,该消息使R Shiny app的用户可以在进行长计算时得到更新。这里的伪代码是更广泛的dplyr代码的一部分

也许新的dplyr中存在一个错误,但是如果有人坚持使用dplyr的方法知道如何在函数中检索列名,我会很高兴听到它。

我尝试使用干净的会话,仅加载dplyrmultimode,并且行为随着dplyr的版本而改变

library(dplyr) # version 0.8.1 vs 0.8.0.1 used here
library(multimode)
funx <- function(x) {
    print(substitute(x))
    multires <- multimode::modetest(x, method = 'SI') 
    p <- multires$p.value}

mtcars %>% 
    select(1:2) %>%
    summarise_all(list(~ funx(.)))

1 个答案:

答案 0 :(得分:0)

具有讽刺意味的是,在获得有关github帖子的反馈后,使用新版本,我们现在可以执行此操作:

   mtcars %>%
      select(1:2) %>%
        summarise_all(funx)

实际上与我在发布此问题时开始提出问题时使用的语法完全相同,但是在先前的dplyr版本时,这还不可能。 因此,dplyr小组的出色工作使语法更加“自然”。