dplyr summarise_each与na.rm

pal*_*czy 61 r dplyr

有没有一种方法,以指导dplyr使用summarise_eachna.rm=TRUE?我想采用变量的均值,summarise_each("mean")但我不知道如何指定它来忽略缺失值.

flo*_*del 94

按照文档中的链接,您似乎可以使用funs(mean(., na.rm = TRUE)):

library(dplyr)
by_species <- iris %>% group_by(Species)
by_species %>% summarise_each(funs(mean(., na.rm = TRUE)))
Run Code Online (Sandbox Code Playgroud)

  • 经过几年的评论:`summarise_each()`已被弃用.在`summarise_all`中,你可以在`funs`参数之后添加`na.rm = TRUE` - 当你想调用多个函数时很有用,例如:`iris%>%group_by(Species)%>%summarise_all (funs(mean,max,sd),na.rm = TRUE)` (5认同)

Tje*_*ebo 13

由于summarise_each现在已经过时,一个附加的应答使用summarise_all.

  • 人们仍然可以指定na.rm = TRUE 范围内funs参数(CF @flodel的回答是:只需更换summarise_eachsummarise_all).
  • 但你也可以添加na.rm = TRUE funs说法.

当您想要调用多个函数时,这非常有用,例如:

require(dplyr)

iris %>% 
  group_by(Species) %>%
  summarise_all(funs(mean, max, sd), na.rm = TRUE)
Run Code Online (Sandbox Code Playgroud)

  • 不推荐使用`funs`。当前命令是`list(...)` (2认同)
  • 仅出于完整性考虑,例如使用list(...)`summarise_all(list(minimum =〜min(。,na.rm = TRUE),maximum =〜max(。,na.rm = TRUE),s_dev =〜sd( 。,na.rm = TRUE)))` (2认同)