为了考虑引用完整性,我实际上会删除很多信息并将其分为两个表:
totals <- dat[!is.na(dat$requested), -c(3,4,5)]
changes <- dat[is.na(dat$requested), c(1,3,4)]
changes$changed <- as.numeric(gsub("[][]","", changes$changed))
totals
# account requested
#1 Account.1 100
changes
# account changed explanation
#2 Account.1 10 grade increase
#3 Account.1 -20 foreign currency adjustment
这样你就可以计算出
totals$changed
和
totals$provided
列通过
sum
明
changes$changed
列并从中减去
totals$requested
,不存在创建任何冲突数据的风险。
也没有
NA
现在任何列中的值。
原始数字/字符数据的混合
changed
列也已被删除。