我有一个 df 有这样的数据:
sub = c("X001","X002", "X001","X003","X002","X001","X001","X003","X002","X003","X003","X002")
month = c("201506", "201507", "201506","201507","201507","201508", "201508","201507","201508","201508", "201508", "201508")
tech = c("mobile", "tablet", "PC","mobile","mobile","tablet", "PC","tablet","PC","PC", "mobile", "tablet")
brand = c("apple", "samsung", "dell","apple","samsung","apple", "samsung","dell","samsung","dell", "dell", "dell")
revenue = c(20, 15, 10,25,20,20, 17,9,14,12, 9, 11)
df = data.frame(sub, month, brand, tech, revenue)
我想使用 sub 和 month 作为键,并为每个订阅者每月获得一行,显示该订阅者在该月的技术和品牌独特价值的收入总和。这个例子被简化了,并且列更少,因为我有一个庞大的数据集,我决定尝试使用data.table
.
我已经设法为一个分类专栏做到了这一点,无论是技术还是品牌,使用这个:
df1 <- dcast(df, sub + month ~ tech, fun=sum, value.var = "revenue")
但我想为两个或更多 caqtogorical 列执行此操作,到目前为止我已经尝试过:
df2 <- dcast(df, sub + month ~ tech+brand, fun=sum, value.var = "revenue")
它只是连接了分类列和总和的唯一值,但我不希望这样。我希望为所有分类列的每个唯一值单独列。
我是 R 新手,非常感谢任何帮助。