[英]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.