我有两个数据表,如下所示:
library(data.table)
x <- data.table(id = c(1,1,1,2,2,2,3,3,3,4,4,4), date = as.Date(c("2015-5-26","2015-6-15","2015-4-03","2015-5-26","2015-6-15","2015-4-03","2015-5-26","2015-6-15","2015-4-03","2015-5-26","2015-6-15","2015-4-03")))
y <- data.table(id=c(1,2,3,4),new_id=c(10,20,30,40))
如上所述,我想将new_id列追加到数据表x中,然后再删除列id。
我可以通过
merge(x,y,by="id")
但是我想尝试一下。
所以我尝试了
x[,new_id:=0]
nm <- c("new_id")
x[nm] <- lapply(nm, function(z) y[[z]][match(y$id, x$id)])
如果我有宽的列和更多的行,那么哪种方法也是好的。
它与显示的列不匹配。
如果我有宽的列和更多的行,那么哪种方法还是有效的。
感谢您的帮助。