如何用R中相同的变量名对每个文件求和

问题描述 投票:0回答:2

假设我有Group1,Group2,... Group10。每个组都有两列-“卡路里”(数字)和“描述”。

如何提取每组的总卡路里?

我正在尝试此代码,但“ SUM”功能似乎不起作用

    for (i in (1:10)){
    Group_names_calories<-c(paste(paste("Group",sep = "", 1:10),sep="",          "$calories")) # to get this epression "Group1$calories".... "Group10$calories"
    calories_by_group<- assign(Group_names_calories[i],
    sum(Group_names_calories[[i]]))
     }

sum(Group_names_calories [i])错误:参数的无效“类型”(字符)

r
2个回答
1
投票

假设您有一个名为“ df”的数据框

Group Cal
1     100
2     98
3     102
1     103
2     101
3     99

dplyr库可以帮助您分组和汇总数据框中的值。

install.packages("dplyr") # if you don't have dplyr installed
library(dplyr)
target <- df %>% group_by(Group) %>% summarize(sum=sum(Cal))

Output:
target
Group Cal
1     202
2     199
3     201

1
投票

乍一看,您是在变量名而不是变量本身上调用sum()

[另外,手动创建"Group1$calories",Group2$calories",Group3$calories",Group4$calories",Group5$calories",Group6$calories",Group7$calories",Group8$calories",Group9$calories", Group10$calories"的字符向量,恐怕对您想找的每个变量/列的预期总和没有帮助。 colSums()能为您提供帮助吗?

仍然,您需要在示例中演示数据主体。 Group_names_calories只是一个字符串。你有资料吗您能在这里发布它以帮助他人帮助您吗?

© www.soinside.com 2019 - 2024. All rights reserved.