繁体   English   中英

R:重复计算多个分组变量的均值

[英]R: repeated calculation of means for a number of grouping variables

我有一个数据框 (df1),其中包含几个虚拟变量 (group_1 … group_i) 和两个主要变量(main_variable_1 和 main_variable_2)。

从 df1 我想创建一个新的数据框 (df2),其中包含第一列中的虚拟变量的名称和一个附加列,每个列都包含两个主要变量的平均值,其中 group_i = 1。

我已经尝试使用 for 循环和 map 函数进行迭代,但我正在努力对列名称进行迭代。

有人对此有解决方案吗?

library(tidyverse)

df1 <- tribble(
  ~group_1, ~group_2, ~group_3, ~main_1, ~main_2,
  1, 0, 0, 5, 6,
  1, 0, 0, 50, 60,
  0, 1, 0, 7, 7
)

df1 %>%
  pivot_longer(starts_with("group_")) %>%
  filter(value == 1) %>%
  select(-value) %>%
  group_by(name) %>%
  summarise(
    main_1 = mean(main_1),
    main_2 = mean(main_2)
  )
#> # A tibble: 2 × 3
#>   name    main_1 main_2
#>   <chr>    <dbl>  <dbl>
#> 1 group_1   27.5     33
#> 2 group_2    7        7

reprex package (v2.0.1) 创建于 2022-04-25

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM