我昨天发布了一个关于累计金额的问题,但由于这一个有点不同,我认为我应该创建一个新的主题(我还确保适当搜索论坛,以防可能使用类似的内容)。
我想计算特定ID(ID)库存的累积总和
100
a <- c(20,50,30,50,10, 40)
b <- c("100", "200", "300", "100", "100", "100")
c <- c("200", "100", "100", "200", "200", "100")
matrix1 <- cbind(a,b,c)
dim(matrix1) <- c(6,3)
colnames(matrix1) <- c("inventory", "buyer", "seller")
当您将此代码放入R时,应显示以下格式的矩阵:
inventory | buyer | seller
20 | 100 | 200
50 | 200 | 100
30 | 300 | 100
50 | 100 | 200
10 | 100 | 200
40 | 100 | 100
(注意,由于这是一个
xts
对象的左边应该有一个时间戳
inventory
专栏,但我把它删掉了,因为它不相关)。
现在,有三个ID:
,
200
和
300
他们互相买卖,结果是
buyer
获得每行的库存和
seller
丢失库存。此外,如果两个中的ID相同
和
列,则库存保持不变。对于我的特殊问题,我只关心ID的累积库存
100
我不在乎
和
300
.
累积库存为20,位于第二行
100
100
100
和
列中,库存与第五列相同,因此再次为0。
c(20, -30, -60, -10, 0, 0)
此外,由于这是一个
xts公司
对象,我不确定这是否会改变任何事情(虽然我高度怀疑它确实会改变任何事情,但我唯一忽略的是,实际上矩阵左侧应该有一个时间戳列,但我排除了它,因为它与问题无关)。
有没有一种基于两列和单个ID计算累积和的好方法?