我用summarize_all()函数在dplyr中总结了一个数据帧。如果我执行以下操作:
summarize_all(mydf, list(mean="mean", median="median", sd="sd"))我得到了一个tibble,每个原始度量都有3个变量,所有变量都以类型(mean,median,sd)为后缀。太棒了!但是当我尝试捕获向量内的n来计算标准差并确保丢失的单元不被计算时……
summarize_all(mydf, list(mean="mean", median="median", sd="sd", n="n"))...I获取错误:
Error in (function () : unused argument (var_a)这不是我的var_a向量的问题。当我请求n或n()时,或者如果我使用.funs()并列出我想要计算的描述符,summarize_all函数就会产生奇怪的结果。
到底怎么回事?
发布于 2019-09-24 03:07:12
它会给你带来问题的原因是,与mean()和median()不同,n()不接受任何参数。改为使用length()以获得所需的效果:
summarize_all(mydf, list(mean="mean", median="median", sd="sd", n="length"))发布于 2019-09-24 02:58:05
在这里,如果我们想要更好的控制,也就是添加其他参数,我们可以使用~
library(dplyr)
mtcars %>%
summarise_all(list(mean = ~ mean(.), median = ~median(.), n = ~ n()))然而,获取每一列的n()并没有多大意义,因为它是相同的。相反,在执行summarise之前创建n()
mtcars %>%
group_by(n = n()) %>%
summarise_all(list(mean = mean, median = median))否则,只传递未加引号的函数
mtcars %>%
summarise_all(list(mean = mean, median = median))https://stackoverflow.com/questions/58068522
复制相似问题