Вот решение с использованием data.table, который суммирует все столбцы _assets по годам и фондам:
настройка
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