gpt4 book ai didi

r - dplyr 和 for 循环

转载 作者:行者123 更新时间:2023-12-05 00:58:40 26 4
gpt4 key购买 nike

所以问题来了:我想在我的 R 代码中使用 for 循环来汇总不同的列。

举个例子,它可能是这样的:

all.columns<-c("column4","column5","column6","column7")
for (i in 1:4) {
df%>%
group_by(column3)%>%
summarise(Mean=mean(all.columns[i]),
Max=max(all.columns[i]))
}

其中 df 是一个数据框,column3 可以是按年份变量分组,第 5 到 7 列是我想用相同的代码重复检查的那些。

您知道如何使用 dplyr 执行此操作吗?如果您有没有 dplyr 的替代方案,我想听听。

我试图把列的字符名称,但它不工作......

最佳答案

这个怎么样:

假数据:

df <- data.frame(column3=rep(letters[1:2], 10), 
column4=rnorm(20),
column5=rnorm(20),
column6=rnorm(20),
column7=rnorm(20))
dplyr解决方案:
library(dplyr)
df %>%
group_by(column3) %>%
summarise_each(funs(mean, max), column4:column7)

输出:
Source: local data frame [2 x 9]

column3 column4_mean column5_mean column6_mean column7_mean column4_max column5_max
1 a 0.186458 0.02662053 -0.00874544 0.3327999 1.563171 2.416697
2 b 0.336329 -0.08868817 0.31777871 0.1934266 1.263437 1.142430
Variables not shown: column6_max (dbl), column7_max (dbl)

关于r - dplyr 和 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32335997/

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