dplyr:任意数量变量的最大值

dplyr:任意数量变量的最大值,r,dplyr,R,Dplyr,我想取管道中变量数量的最大值: library(dplyr) library(purrr) df_foo = data_frame( a = rnorm(100), b = rnorm(100), c = rnorm(100) ) %>% mutate( `Max 1` = max(a, b, c, na.rm = TRUE), `Max 2` = pmap_dbl(list(a, b, c), max, na.rm = TRUE), `Max

我想取管道中变量数量的最大值:

library(dplyr)
library(purrr)

df_foo = data_frame(
  a = rnorm(100),
  b = rnorm(100),
  c = rnorm(100)
) %>% 
  mutate(
    `Max 1` = max(a, b, c, na.rm = TRUE),
    `Max 2` = pmap_dbl(list(a, b, c), max, na.rm = TRUE),
    `Max 3` = pmax(a, b, c, na.rm = TRUE)
  )

purrr::pmap_dbl
解决方案似乎很笨拙——因为它需要将变量的名称指定为列表。有没有一种方法可以避免使用
列表
关键字,这样它就有可能以编程方式使用?

我们可以使用
来指定数据集

df_foo %>%
     mutate(Max2 = pmap_dbl(.l = ., max, na.rm = TRUE))
假设我们在列的子集上做,那么

nm1 <- c("a", "b")
df_foo %>%
     mutate(Max2 = pmap_dbl(.l = .[nm1], max, na.rm = TRUE))
nm1%
变异(Max2=pmap_dbl(.l=[nm1],max,na.rm=TRUE))