R 数据聚合和无效数据类型消息?
一段时间以来,我一直在琢磨如何合计一些日期R 数据聚合和无效数据类型消息?,r,R,一段时间以来,我一直在琢磨如何合计一些日期 DF2 <- aggregate(.~fund, cbind(DF["fund"], test[assets_cols]), sum) 感谢您的帮助。实际数据集包含更多的行,组的大小并不总是相同的。我想输出一个新的数据帧 很抱歉提出了这样一个基本问题这里有一个使用data.table的解决方案,它按年份和基金对所有_资产列求和: 设立 解决方案 你想做什么?@sotos我想每年按基金汇总资产 DF name fund 20
DF2 <- aggregate(.~fund, cbind(DF["fund"], test[assets_cols]), sum)
感谢您的帮助。实际数据集包含更多的行,组的大小并不总是相同的。我想输出一个新的数据帧
很抱歉提出了这样一个基本问题这里有一个使用data.table的解决方案,它按年份和基金对所有_资产列求和: 设立 解决方案
你想做什么?@sotos我想每年按基金汇总资产
DF
name fund 2018_11_return 2018_12_return 2018_11_assets 2018_12_assets
ab1 xcdfjxxv123 3.154 3.18 34234234234 546454543
ds1 xcdfjxxv123 3.123 4.28 31231234234 454684543
ad8 sdfffesg124 6.523 6.78 61121234234 234684543
t68 sdfffesg124 7.723 8.88 12232234234 5234684543
library(data.table)
dt = data.table("name" = c("ab1", "ds1", "ad8", "t68"),
"fund" = c("fund1","fund1","fund2","fund2"),
"2018_11_assets" = 1:4,
"2018_12_assets" = 101:104,
"2019_11_assets" = 10:13,
"2019_12_assets" = 110:113)
name fund 2018_11_assets 2018_12_assets 2019_11_assets 2019_12_assets
1: ab1 fund1 1 101 10 110
2: ds1 fund1 2 102 11 111
3: ad8 fund2 3 103 12 112
4: t68 fund2 4 104 13 113
dt = melt(data = dt, id.vars = c("name", "fund")) # convert to long data
dt[, year := as.numeric(substr(variable, 0, 4))] #extract the year
dt[, .(assets = sum(value)), by = .(fund, year)] # aggregate
fund year assets
1: fund1 2018 206
2: fund2 2018 214
3: fund1 2019 242
4: fund2 2019 250