R中多个组的计算方法

Calculating means for multiple groups in R

各位溢出者大家好,

目前我正在尝试计算多个组的均值。 我的 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())

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

这个有用吗:

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