根据是否给出NA,将data.table行条目更改为相应的data.table行条目

时间:2014-11-09 01:20:51

标签: r data.table rows

我很确定已经发布了类似的问题,但我似乎无法找到 它。 希望有人可以帮助我

我有两个数据表,例如

x1 = data.table(index1 = c(NA,NA,3,4,5))

x2 = data.table(index2 = c(NA,5,NA,NA,5))

我想要做的是在x1中创建另一个列,说“index3” 以下行值:

如果x1的行值不是NA,则将其行值设为“index3” 如果是NA,则将index2行值设置为“index3”

,无论它是否为NA

所以最后,我应该有这个

x1 = data.table(index1 = c(NA,NA,3,4,5),index3 = c(NA,5,3,4,5))

我想知道是否存在data.table相关的答案或者a 发出矢量的可能性 index3 = c(NA,5,3,4,5) 这样我就可以使用x1 [,“index3”:= index3,= FALSE]将新列添加到x1

1 个答案:

答案 0 :(得分:1)

尝试:

> x1[,index3:=ifelse(is.na(index1),x2$index2,index1),]
> x1
   index1 index3
1:     NA     NA
2:     NA      5
3:      3      3
4:      4      4
5:      5      5