【问题标题】:use tidyr::fill but with specific values for fill使用 tidyr::fill 但使用特定的填充值
【发布时间】:2019-10-22 21:44:22
【问题描述】:

我试图找出一个与 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() 替代方法?

【问题讨论】:

    标签: r tidyr


    【解决方案1】:

    您可以使用 zoo 包中的 na.fill。您可以为数据的左侧、内部和右侧设置您想要的内容。您也可以使用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
    

    【讨论】:

    • 就是这样!感谢您指出了这一点。希望我可以让它在我更复杂的实际实现中工作。
    猜你喜欢
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 2018-10-06
    • 2015-06-11
    • 2013-07-15
    • 2020-03-11
    相关资源
    最近更新 更多