将n()与summary_all一起使用

将n()与summary_all一起使用,r,dplyr,tidyverse,summarize,R,Dplyr,Tidyverse,Summarize,工作正常: stats = c('mean', 'median', 'sd', 'max', 'min') sumtable = iris %>% select(-Species) %>% summarise_all(.funs = stats) 不起作用: stats = c('mean', 'median', 'sd', 'max', 'min', 'n') sumtable = iris %>% select(-Species) %>% summarise_al

工作正常:

stats = c('mean', 'median', 'sd', 'max', 'min')
sumtable = iris %>% select(-Species) %>%  summarise_all(.funs = stats)
不起作用:

stats = c('mean', 'median', 'sd', 'max', 'min', 'n')
sumtable = iris %>% select(-Species) %>% summarise_all(.funs = stats)
Error in summarise_impl(.data, dots) : `n()` does not take arguments

请告知。

我想要这个功能,因为我想计算未丢失的观测值。正如Rohit指出的,length将计算所有行,包括缺少的OB。所以我最后做的是:

not.na = function(x) {sum(!is.na(x))}
stats = c('mean', 'median', 'sd', 'max', 'min', 'not.na')
sum.acs = acs %>% group_by(year) %>% summarise_all(.funs = stats)

您可以使用
length
而不是
n
了解,对于命名函数向量中的每个函数,
summary\u all
使用数据作为其第一个参数调用函数。因此,虽然
mean(x)
(或者更恰当地说,
mean(c(1,2,5,22,…)
)有意义,
n(…)
没有意义,因为
n()
不带参数。您可以随时定义
my\n将
n()
summary\u all()
一起使用有什么意义
n()
返回行数,我估计所有列的行数都相同。谢谢