【发布时间】:2019-06-25 01:53:03
【问题描述】:
我想合并 15 列,它们有 3 个相同的列(所以它有 5 个相同的副本)。我的数据看起来像这样(例如,为了简单起见,它只有 3 个副本)
date sku1 prod1 tot1 sku2 prod2 tot2 sku3 prod3 tot3
01/02/2019 100 a 100
01/02/2019 100 a 200 101 b 50
02/02/2019 101 b 100
02/02/2019 101 b 50 102 c 100 100 a 50
02/02/2019 102 c 50
变成这样
date sku all_prod total
01/02/2019 100 a 300
01/02/2019 101 b 50
02/02/2019 101 b 150
02/02/2019 102 c 150
02/02/2019 100 a 50
有人知道怎么做吗?提前感谢这么多
【问题讨论】:
-
请使用
dput显示示例。这些是空白 ("") 还是NAs? -
不清楚条件。可能是
library(data.table); melt(setDT(df1), measure = patterns("^sku", "^prod", "^tot"), na.rm = TRUE, value.name = c("sku", "all_prod", "total"))[, lapply(.SD, sum, na.rm = TRUE), .(date, all_prod), .SDcols = c("sku", "total")] -
那些空白不适用