如何在使用Dplyr的Group_by和Summarise_at时对n()使用na.rm = TRUE

麦克风
library(tidyverse) 

我被困在应该是如此简单的事情上!使用下面的代码,我要做的就是分组并总结三个“ Var”列。我想要计数和总和(以便我可以创建三个百分比列,因此如果可以在回答中包括一种简便的方法来完成此操作,那么可以加分)。但是,我不想包括NA。使用“ na.rm = TRUE”从总和中删除NA很容易,但是我似乎无法弄清楚在使用dplyr :: summarise_at时如何不将NA包括在计数中(使用n())。

我是否缺少一些简单的东西?

Df%>%group_by(Group)%>%summarise_at(vars(Var1:Var3),funs(n(),sum((.),na.rm=TRUE)))

Group<-c("House","Condo","House","House","House","House","House","Condo")
Var1<-c(0,1,1,NA,1,1,1,0)    
Var2<-c(1,1,1,1,0,1,1,1)
Var3<-c(1,1,1,NA,NA,1,1,0)

Df<-data.frame(Group,Var1,Var2,Var3)
明显地

我认为您的代码非常接近完成工作。我做了一些细微的更改,并举例说明了如何在同一步骤中包含百分比计算(尽管我不确定您的预期输出)。

library(dplyr)
Df %>% 
  group_by(Group) %>% 
  summarise_all(funs(count = sum(!is.na(.)), 
                     sum = sum(.,na.rm=TRUE),
                     pct = sum(.,na.rm=TRUE)/sum(!is.na(.))))

#> # A tibble: 2 x 10
#>    Group Var1_count Var2_count Var3_count Var1_sum Var2_sum Var3_sum
#>   <fctr>      <int>      <int>      <int>    <dbl>    <dbl>    <dbl>
#> 1  Condo          2          2          2        1        2        1
#> 2  House          5          6          4        4        5        4
#> # ... with 3 more variables: Var1_pct <dbl>, Var2_pct <dbl>,
#> #   Var3_pct <dbl>

我还对所有不是变量的变量使用summarise_all而不是summarise_at作为summarise_all作品group

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

dplyr :: mutate(分配na.rm = TRUE)

mean(,na.rm = TRUE)仍返回NA

总结使用na.rm = TRUE时返回-inf

是否可以在dplyr mutate中使用自定义函数,并选择使用na.rm = TRUE或na.rm = FALSE

使用na.rm = TRUE汇总数据

在dplyr中为每个函数保存na.rm = TRUE

除na.rm = TRUE之外,均值还返回NaN

如何在R胶合语法中设置“ na.rm = TRUE”

我如何在 R 中按 ID 分组并用 na.rm = TRUE 进行平均汇总

将na.rm = TRUE与mutate中的函数一起使用

未能省略包含 NA 值的列:na.rm=TRUE 和 na.action=NULL

无论如何,max(x,na.rm = TRUE)返回“ NA”

带有na.rm = TRUE参数的data.table和pmin

R:为什么意思是(NA,na.rm = TRUE)返回NaN

Tapply(var, y, mean, na.rm = TRUE) 中的错误:参数必须具有相同的长度

为什么na.rm = TRUE对于R中的加权SD不起作用?

colMeans(x,na.rm = TRUE)中的错误:“ x”在KNN分类中必须是数字

主成分分析:colMeans(x,na.rm = TRUE)中的错误:'x'必须为数字

在 tidyr::pivot_wider 中,`values_fn = sum(.,na.rm=TRUE)` 失败

rowSums(., na.rm = TRUE) 中的错误:“x”必须是数字 - 尽管验证变量是数字

dplyr summarise_each与na.rm

在 R 代碼中使用 na.rm=TRUE 進行匯總時出現問題

为什么在使用替换功能时收到此消息?在mean.default(x,na.rm = TRUE)中:参数不是数字或逻辑:返回NA

RDA,colMeans(x,na.rm = TRUE)中的错误:当数据为数字时,“ x”必须为数字?

git rm 和 git rm --cached 的区别

rm和rm -rf之间的区别

别名rm和/ bin / rm之间的区别

Makefile中@rm和rm之间的区别

如何使分位数与summarise_at和group_by(dplyr)一起使用