【发布时间】:2016-03-03 02:19:33
【问题描述】:
有如下结构的两个数据表:
DT1 <- data.table(ID=c("A","B","C"), P0=c(1,10,100), key="ID")
DT2 <- data.table(ID=c("B","B","B","A","A","A","C","C","C"), t=rep(seq(0:2),3), P=c(NA,30,50,NA,4,6,NA,200,700))
在数据表DT2P 列中的所有 NA 应由数据表 DT1 中的值 P0 更新。
如果DT2像DT1一样被ID排序,问题可以这样解决:
setorder(DT2,ID)
idxr <- which(DT2[["t"]]==1)
set(DT2, i=idxr, j="P", value=DT1[["P0"]])
但是数据表如何在不排序DT2之前“合并”呢?
【问题讨论】:
标签: r merge data.table na