【发布时间】:2022-01-18 00:26:25
【问题描述】:
我需要对同一组中大约 40 个变量的值求和。
这是一个示例数据集。所以我想按地区和部门对 score1-score5 的值求和。
region <- rep(c("south", "east", "west", "north"),times=10)
department <- rep(c("A", "B","C","D","E"),times=8)
score1 <- rnorm(n = 40, mean = 0, sd = 1)
score2 <-rnorm(n = 40, mean = 3, sd = 1.5)
score3 <-rnorm(n = 40, mean = 2, sd = 1)
score4 <-rnorm(n = 40, mean = 1, sd = 1.5)
score5 <-rnorm(n = 40, mean = 5, sd = 1.5)
df <- data.frame(region, department, score1, score2, score3, score4, score5)
这是导致我想要的结果的代码,但有没有更简单的方法来做到这一点:
df %>% group_by(region, department) %>%
summarise(score1=sum(score1),
score2=sum(score2),
score3=sum(score3),
score4=sum(score4),
score5=sum(score5))
我尝试使用循环,但这不起作用:
vlist<-c("score1", "score2", "score3", "score4", "score5")
for (var in vlist) {
df<-df %>% group_by(region, department) %>%
summarise(var=sum(.[[var]]))
}
还有其他方法或我的循环有什么问题吗? 谢谢!
【问题讨论】: