我正在尝试找出与tidyr :: fill非常相似的功能,但不是使用下一个或上一个条目,而是尝试使用特定值。
举个例子
library(tibble)
xtest <- as.tibble(c(NA,NA, seq(10,70,10), NA, NA))
colnames(xtest)<- "data"
ytest <- tidyr::fill(xtest, 'data', .direction='down')
ytest <- tidyr::fill(ytest, 'data', .direction='up')
ytest
创建的小标题是:
data
<dbl>
1 10
2 10
3 10
4 20
5 30
6 40
7 50
8 60
9 70
10 70
11 70
我想做的是将前两个NA替换为0(而不是10s),将后两个NA替换为100(而不是70s)。
.direction选项接近,但使用下一个或上一个条目。
是否可以使用fill()替代方法来提供此功能?
答案 0 :(得分:4)
您可以使用na.fill
软件包中的zoo
。您可以为数据的左侧,内部和右侧设置所需的内容。您也可以使用extend
而不是值。
zoo::na.fill(xtest, c(0, "extend", 100))
data
[1,] 0
[2,] 0
[3,] 10
[4,] 20
[5,] 30
[6,] 40
[7,] 50
[8,] 60
[9,] 70
[10,] 100
[11,] 100