想在与data.table的同一列中找到最接近的非NA值

时间:2019-06-07 11:44:08

标签: r data.table

对于data.table,我有一列包含许多NA的列,我想用先前的非NA值替换该NA。我可以在某个地方转移到前一个,但不能真正找到最近的一个。请指教,这是玩具示例。

x <- data.table(A = 1:5, B.1 = c(1,NA,NA,2,NA), B.2 = c(1,1,1,2,2))
x[,B.3 := ifelse(is.na(B.1), shift(B.1, 1), B.1)]

#   A B.1 B.2  B.3
#1: 1   1   1  1
#2: 2  NA   1  1
#3: 3  NA   1 NA
#4: 4   2   2  2
#5: 5  NA   2  2

B.1是我的目标列,而B.2是我想要的。如您所见,x $ B.1 [2]在x $ B.1 [1]之后,x $ B.1 [3]在x $ B.1 [1]之后,因为x $ B.1 [ 1]是最接近的先前非NA值。因此,我的注意力是制作B.2,但我只能做B.3。

0 个答案:

没有答案