sách gpt4 ai đã đi

r - dplyr 中的分组均值

In lại 作者:行者123 更新时间:2023-12-02 09:12:32 36 4
mua khóa gpt4 Nike

我从一篇已发表的论文中找到了以下代码。在这个具体案例中,我想说这个策略效果很好,因为它很明确,而且变量相对较少。然而,代码“有点”重复,我想知道是否有一种不那么重复的方法来做到这一点,仍然符合dplyr风格和生活方式。

nhập mô tả hình ảnh ở đây

测试用例:

set.seed(42)
df <- data.frame(GR=sample(1:2, 100, replace=TRUE),
as.data.frame(replicate(20, rnorm(100))))
names(df)[-1] <- LETTERS[1:20]

现在使用 aggregate 分组均值表:

aggregate(df[,-1], df[1],mean)

...并与 dplyr :

df %>% group_by(GR) %>% summarize(mean.A=mean(A),
mean.B=mean(B),
mean.C=mean(C),
mean.D=mean(D),
mean.E=mean(E),
# skipped 14 rows
mean.T=mean(T))

有没有DRY dplyr 中执行此操作的方法?我知道R中的所有编程工具也可以在 dplyr 中找到。 - 所以问题不在于如何做到这一点..相反,我正在寻找一个惯用的 dplyr这样做的方法。我在现实生活中见过类似但更长的例子。

1 Câu trả lời

当要汇总多列时,请使用summarise_all(如果除分组变量之外的所有其他列都需要使用函数进行汇总)

df %>%
group_by(GR) %>%
summarise_all(funs(mean = mean(., na.rm = TRUE)))

如果我们只需要在选定的列上执行此操作,请尝试使用 summarise_at

df %>%
group_by(GR) %>%
summarise_at(vars(A, B, C, D, E), funs(mean = mean(., na.rm = TRUE)))

此外,当我们只想将函数应用于某些类型列时,请检查 summarise_if

关于r - dplyr 中的分组均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50530672/

36 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com