【问题标题】:Calculating means for multiple groups in R计算R中多个组的平均值
【发布时间】:2020-11-09 14:30:58
【问题描述】:

各位大侠们好,

目前我正在尝试计算多个组的平均值。 我的 df 看起来像这样(~600 行):

 col1   col2  col3  col4  col5
   <type> <gender> <var1> <var2> <var3>
 1 A        1         3     2     3
 2 A        2         NA    5    NA
 3 A        1         3     3     5
 4 B        1         4     NA    1  
 5 B        2         3     4     5  

现在结果应该是这样的:

 col1   col2  col3  col4  col5
   <type> <gender> <mean-var1>  <mean-var2>   <mean-var3>
 1 A        1         3.6          4.1          4.6
 2 A        2         4.1          3.8          4.2
 3 B        1         3.9          4.2          3.7
 4 B        2         4.3          3.2          2.7
 5 C        1         3.5          4.5          3.6
 6 C        2         4            3.7          4.2
...

到目前为止,我已经尝试使用group_by 函数:

avg_values<-data%>%
      group_by(type, gender) %>%
      summarize_all (mean())

到目前为止,还没有成功。你能帮我找出一个处理这个问题的好方法吗?

【问题讨论】:

  • 尝试删除 () 的意思,例如 ..%&gt;% summarize_all(mean): it should suffice
  • 我刚刚注意到了!删除了我的答案

标签: r grouping mean


【解决方案1】:

这行得通吗:

library(dplyr)
df %>% group_by(type, gender) %>% summarise(across(var1:var3, ~ mean(., na.rm = T)))
`summarise()` regrouping output by 'type' (override with `.groups` argument)
# A tibble: 4 x 5
# Groups:   type [2]
  type  gender  var1  var2  var3
  <chr>  <dbl> <dbl> <dbl> <dbl>
1 A          1     3   2.5     4
2 A          2   NaN   5     NaN
3 B          1     4 NaN       1
4 B          2     3   4       5 

使用的数据:

df
# A tibble: 5 x 5
  type  gender  var1  var2  var3
  <chr>  <dbl> <dbl> <dbl> <dbl>
1 A          1     3     2     3
2 A          2    NA     5    NA
3 A          1     3     3     5
4 B          1     4    NA     1
5 B          2     3     4     5

【讨论】:

    猜你喜欢
    • 2017-02-06
    • 2012-03-09
    • 1970-01-01
    • 2012-04-05
    • 2017-12-05
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多