Используя подделку вашей картинки, я написал следующее. Дайте мне знать, если выходной сигнал переменного тока. Это похоже на предложение rfortin, но с data.table
вместо dplyr
.
Код:
library(data.table)
dt <- melt(data, id.vars = c("Year", "Category"), measure.vars = c("Jan", "Feb"),
variable.name = "Month", value.name = "Profit") %>%
.[, `Month-Year`:= paste(`Month`, `Year`, sep = " ")] %>%
dcast(., `Category` ~ `Month-Year`, fun.aggregate = sum, value.var = "Profit")
Данные:
data <- data.table(Year = c(1999,1999,1999,2000,2000,2000,2001,2001,2001),
Category = c("A", "B", "C","A", "B", "C","A", "B", "C"),
Jan = c(234234,3413,134,134,13423,1324,1324,1235,54),
Feb = c(234523,435234,0,2342,0,153,24,234,72))
Выход:
Category Feb 1999 Feb 2000 Feb 2001 Jan 1999 Jan 2000 Jan 2001
1: A 234523 2342 24 234234 134 1324
2: B 435234 0 234 3413 13423 1235
3: C 0 153 72 134 1324 54