这很好用(将其视为使用list()
而不是vars()
here的解决方案):
mtcars %>%
group_by(cyl) %>%
summarize_at(vars(disp, hp), list(~weighted.mean(., wt)))
但是,在使用
summarize_if()
的非常相似的情况下,它不起作用:mtcars %>%
group_by(cyl) %>%
summarize_if(is.numeric, list(~weighted.mean(., wt)))
Error in weighted.mean.default(., wt) :
'x' and 'w' must have the same length
为什么?
最佳答案
我相信这与您为这个新变量命名的内容有关。这有效:
mtcars %>%
group_by(cyl) %>%
summarize_if(is.numeric, list(tmp = ~weighted.mean(., wt)))
有关更多详细信息,请参见here命名部分和here中已提到的问题。
关于r - 使用其他列作为在summary_if()中起作用的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61804724/