gpt4 book ai didi

r - 通过 R 中其他 2 列的所有组合计算一列的平均值

转载 作者:行者123 更新时间:2023-12-02 18:42:04 25 4
gpt4 key购买 nike

我想计算第一列和第二列的每种可能组合的平均值。对于第 1-2、3、4-6 行,依此类推。我怎样才能做到这一点?

第二个问题:如何获得 L 和 M 的每个组合的观测值数量? A 和 A 2 个 obs,A 和 B 1 个,A 和 I 3 个,...

        L      M    W
1 A A 61.5
2 A A 68.2
3 A B 64.0
4 A I 65.0
5 A I 59.7
6 A I 55.0
7 B A 42.0
8 B A 60.2
9 B B 52.5
10 B I 61.8
11 B I 49.5
12 B I 52.7

最佳答案

我们可以将 base R 中的 aggregate 与公式方法一起使用,并指定 . 来选择除以下列之外的所有其他列作为分组lhs 即“W”

aggregate(W ~., df1, mean)

或使用dplyr

library(dplyr)
df1 %>%
group_by(across(where(is.character))) %>%
summarise(Mean = mean(W), Count = n())

-输出

# A tibble: 6 x 4
# Groups: L [2]
L M Mean Count
<chr> <chr> <dbl> <int>
1 A A 64.8 2
2 A B 64 1
3 A I 59.9 3
4 B A 51.1 2
5 B B 52.5 1
6 B I 54.7 3

数据

df1 <- structure(list(L = c("A", "A", "A", "A", "A", "A", "B", "B", 
"B", "B", "B", "B"), M = c("A", "A", "B", "I", "I", "I", "A",
"A", "B", "I", "I", "I"), W = c(61.5, 68.2, 64, 65, 59.7, 55,
42, 60.2, 52.5, 61.8, 49.5, 52.7)), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"))

关于r - 通过 R 中其他 2 列的所有组合计算一列的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67877018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com