<分区> 分区>
有如下结构的两个数据表:
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))
在数据表DT2
中,列P
中的所有NA都应由数据表DT1
中的值P0
更新>.
如果DT2
像DT1
一样按ID
排序,问题可以这样解决:
setorder(DT2,ID)
idxr <- which(DT2[["t"]]==1)
set(DT2, i=idxr, j="P", value=DT1[["P0"]])
但是数据表怎么能在不先排序DT2
的情况下进行“合并”呢?