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