R 填写同一data.table中的值
我有一个data.table,其中缺少值,需要根据同一data.table中的其他行进行填充。我可以通过复制data.table并按我试图填充的行中的唯一值进行过滤来实现这一点,但我认为必须有一种更优雅的方法来实现这一点,而不需要使用太多内存。由于列名混淆,我也不知道是否可以在其内部引用相同的data.table 在本例中,有一个单据编号、值和分录类型。如果可能的话,我需要解决方案包括单据号和条目类型作为填充值的键。条目类型11从来没有值-该值可以与条目类型16或类型NA一起存储R 填写同一data.table中的值,r,data.table,R,Data.table,我有一个data.table,其中缺少值,需要根据同一data.table中的其他行进行填充。我可以通过复制data.table并按我试图填充的行中的唯一值进行过滤来实现这一点,但我认为必须有一种更优雅的方法来实现这一点,而不需要使用太多内存。由于列名混淆,我也不知道是否可以在其内部引用相同的data.table 在本例中,有一个单据编号、值和分录类型。如果可能的话,我需要解决方案包括单据号和条目类型作为填充值的键。条目类型11从来没有值-该值可以与条目类型16或类型NA一起存储 test &l
test <- data.table(docnumber = c(100023,100024,100024,100024,
100025,100025,100026,100026),
value = c(15423,15428,NA,NA,
17832,NA,23162,NA),
type = c(16,16,11,12,NA,11,16,11)
)
test
test基于该示例,我假设您可以执行test[,value:=unique(na.omit(value)),by=docnumber]
,但我不确定类型
列的相关性是什么。如果它有这种排序顺序,test[,value:=value[1L],by=docnumber]
。如果值
完全由文档编号
决定,而类型
则不是,那么您可能应该考虑使用更好的数据结构。这里是R社区的常用参考资料:太好了,谢谢。类型只是标识正确的唯一值的另一个键——我可以将它提供给by参数,如果我在一个docnumber中有多个值,这应该可以工作。
results <- data.table(docnumber = c(100023,100024,100024,100024,100025,100025,100026,100026), value = c(15423,15428,15428,15428,17832,17832,23162,23162), type = c(16,16,11,12,NA,11,16,11))
results