对于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。