首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有"n()“函数的summarize_all

带有"n()“函数的summarize_all
EN

Stack Overflow用户
提问于 2019-09-24 02:53:24
回答 2查看 1.5K关注 0票数 3

我用summarize_all()函数在dplyr中总结了一个数据帧。如果我执行以下操作:

代码语言:javascript
复制
summarize_all(mydf, list(mean="mean", median="median", sd="sd"))

我得到了一个tibble,每个原始度量都有3个变量,所有变量都以类型(mean,median,sd)为后缀。太棒了!但是当我尝试捕获向量内的n来计算标准差并确保丢失的单元不被计算时……

代码语言:javascript
复制
summarize_all(mydf, list(mean="mean", median="median", sd="sd", n="n"))

...I获取错误:

代码语言:javascript
复制
Error in (function ()  : unused argument (var_a)

这不是我的var_a向量的问题。当我请求nn()时,或者如果我使用.funs()并列出我想要计算的描述符,summarize_all函数就会产生奇怪的结果。

到底怎么回事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-24 03:07:12

它会给你带来问题的原因是,与mean()median()不同,n()不接受任何参数。改为使用length()以获得所需的效果:

代码语言:javascript
复制
summarize_all(mydf, list(mean="mean", median="median", sd="sd", n="length"))
票数 2
EN

Stack Overflow用户

发布于 2019-09-24 02:58:05

在这里,如果我们想要更好的控制,也就是添加其他参数,我们可以使用~

代码语言:javascript
复制
library(dplyr)
mtcars %>% 
      summarise_all(list(mean = ~ mean(.), median = ~median(.), n = ~ n()))

然而,获取每一列的n()并没有多大意义,因为它是相同的。相反,在执行summarise之前创建n()

代码语言:javascript
复制
mtcars %>%
   group_by(n = n()) %>%
   summarise_all(list(mean = mean, median = median))

否则,只传递未加引号的函数

代码语言:javascript
复制
mtcars %>%
     summarise_all(list(mean = mean, median = median))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58068522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档