嘿我试图从使用ddply过渡到使用data.table,我近在琢磨,但我有轻微的调整,我仍然需要使。下面是我想要做的事情的概要,使用玩具数据集:R:处理时间不匹配,同时使用data.table
比方说,我有两个产品的销售数据为多个星期。
x <- structure(list(week = c(1, 1, 2, 3, 1, 2, 2, 3, 4), product = c("a",
"a", "a", "a", "b", "b", "b", "b", "b"), sold = c(10, 15, 20,
25, 30, 35, 40, 45, 50)), .Names = c("week", "product", "sold"
), row.names = c(NA, -9L), class = c("data.table", "data.frame"
), sorted = c("product", "week"))
week product sold
1: 1 a 10
2: 1 a 15
3: 2 a 20
4: 3 a 25
5: 1 b 30
6: 2 b 35
7: 2 b 40
8: 3 b 45
9: 4 b 50
我想找到产品的总销售额为我每周Ĵ,即我卖了25个单位产品的一个一周1
我用下面的代码来做到这一点:
setDT(x)
setkey(x,product,week)
> x1 <- x[x,sum(sold)]
> x1
product week V1
1: a 1 25
2: a 1 25
3: a 2 20
4: a 3 25
5: b 1 30
6: b 2 75
7: b 2 75
8: b 3 45
9: b 4 50
问题是我不知道如何删除重复的行,即。第2行是多余的。此外,我还想在产品未销售的周内纳入NA,即。第4周产品的一行值为NA。
我敢肯定这是一个简单的问题,我知道如何在ddply中做到这一点,但我找不到通过搜索找到的东西。如果任何人都可以帮助或链接到正确的页面,如果这是重复的,那会很好。
完美!这正是我所想的,不知道是否有交叉连接。 – user3732080