我想在dfs列表中汇总来自同一国家/地区的所有值(df-wise!)。下面是一些示例数据:
df1 <- data.frame(CNTRY = c("A", "B", "C"), Value=c(3,1,4))
df2 <- data.frame(CNTRY = c("A", "B", "C", "C"),Value=c(3,5,8,7))
dfList <- list(df1, df2)
names(dfList) <- c("111.2000", "112.2000")
我的列表由行号不同的dfs(仅dfs)组成,
但所有df的栏结构相同。列表名称是articleID和Year的混合,超过1000 dfs。
现在我的问题是:如何总结或汇总所有dfs中的国家/地区值?
我的预期结果是:
$`111.2000`
CNTRY Value
1 A 3
2 B 1
3 C 4
$`112.2000`
CNTRY Value
1 A 3
2 B 5
3 C 15
我尝试使用
aggregate(Value ~ CNTRY, data=dfList,FUN=sum)
来传递错误消息,因为ojit_code和CNTRY
不是对象,而是对象内的列。有任何想法吗?提前致谢。 最佳答案
使用lapply()
在aggregate()
上应用dfList
函数。
lapply(dfList, function(x) aggregate(Value ~ CNTRY, x, sum))
# $`111.2000`
# CNTRY Value
# 1 A 3
# 2 B 1
# 3 C 4
#
# $`112.2000`
# CNTRY Value
# 1 A 3
# 2 B 5
# 3 C 15