【发布时间】:2023-08-20 14:09:01
【问题描述】:
例子:
library(dplyr)
df <- tibble(a = c(10, 10, 10, 20, 20),
b = c(1, 2, 10, 2, 4))
## produces desired result:
df %>%
group_by(a) %>%
summarize(mn = mean(b), md = median(b))
stats <- function(x){
list(mn = mean(x), md = median(x)) }
## object 'b' not found:
df %>%
group_by(a) %>%
summarize(!!! stats(b))
调用stats(b) 没有看到b 列。不涉及更改stats 函数的最简单解决方案是什么?
R 版本 3.4.3,dplyr 版本 0.7.2
【问题讨论】:
-
如果您尝试进行汇总以便拥有平均列和中值列,您可以这样做:
summarize(mn = stats(b)[['mn']], md = stats(b)[['md']])