【问题标题】:Fill NA while keeping continous scale [duplicate]在保持连续比例的同时填充 NA [重复]
【发布时间】:2020-11-05 02:38:18
【问题描述】:

我想知道是否有一种方法可以填充 NA 值,同时保持数字向量的连续比例。

假设我有一个这样的向量:

set.seed(55)
as.list(missForest::prodNA(data.frame(a=c(1:100)),noNA=0.3))
$a
  [1]   1  NA   3  NA   5  NA   7   8   9  10  11  12  13  14  15  16  17  18  19  NA
 [21]  21  22  23  24  NA  26  27  28  29  30  31  32  33  NA  35  NA  37  38  39  40
 [41]  41  42  43  NA  45  46  47  48  NA  50  51  52  53  54  55  56  57  NA  NA  60
 [61]  61  62  NA  NA  65  66  NA  NA  NA  NA  NA  NA  NA  74  75  NA  77  NA  79  NA
 [81]  81  82  NA  84  85  86  NA  88  89  90  91  92  NA  94  95  NA  NA  NA  NA 100

我怎样才能得到

> as.list(data.frame(a=c(1:100)))
$a
  [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20
 [21]  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40
 [41]  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60
 [61]  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80
 [81]  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100

通过填写 NA?

【问题讨论】:

    标签: r na fill


    【解决方案1】:

    你可以使用zoona.spline

    x <- missForest::prodNA(data.frame(a=c(1:100)),noNA=0.3)$a
    zoo::na.spline(x)
    
    #[1]    1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
    #[16]  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30
    #[31]  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45
    #[46]  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60
    #[61]  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75
    #[76]  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90
    #[91]  91  92  93  94  95  96  97  98  99 100
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-26
      • 2012-12-18
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 2016-05-13
      • 1970-01-01
      相关资源
      最近更新 更多