我有一个编码问题,我认为应该是很容易的。 我创建了一个简单的数据集:
DT <- data.table(Bank=rep(c("a","b","c"),4),
Type=rep(c("Ass","Liab"),6),
Amount=c(100,200,300,400,200,300,400,500,200,100,300,100))
# Bank Type Amount SumLiab
# 1: a Ass 100 NA
# 2: b Liab 200 700
# 3: c Ass 300 NA
# 4: a Liab 400 500
# 5: b Ass 200 NA
# 6: c Liab 300 400
# 7: a Ass 400 NA
# 8: b Liab 500 700
# 9: c Ass 200 NA
# 10: a Liab 100 500
# 11: b Ass 300 NA
# 12: c Liab 100 400
我想创建一个变量,是量的总和时,类型=每个银行“牌照上诉委员会”。 因此,这是没有问题的:
DT[Type=='Liab',SumLiab:=sum(Amount),by=Bank]
# Bank Type Amount SumLiab
# 1: a Ass 100 NA
# 2: b Liab 200 700
# 3: c Ass 300 NA
# 4: a Liab 400 500
# 5: b Ass 200 NA
# 6: c Liab 300 400
# 7: a Ass 400 NA
# 8: b Liab 500 700
# 9: c Ass 200 NA
# 10: a Liab 100 500
# 11: b Ass 300 NA
# 12: c Liab 100 400
但我想对所有行此值,即使类型==“屁股”。 据我所知,我现在得到NA由于DT[Type=='Liab',..]
限制。 有编码以获取所有行的值SumLiab的一个聪明的办法? (所以ROW1,目前是NA为SumLiab得到值500)
谢谢! 蒂姆