如何使用随机匹配​​查找值并在每行中追加?

时间:2018-11-08 04:36:01

标签: r dplyr data.table

我有两个数据表,如下所示:

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)])

如果我有宽的列和更多的行,那么哪种方法也是好的。

它与显示的列不匹配。

如果我有宽的列和更多的行,那么哪种方法还是有效的。

感谢您的帮助。

0 个答案:

没有答案