【问题标题】:Replacing NA with observed values? [duplicate]用观察值替换 NA? [复制]
【发布时间】:2020-09-13 21:05:52
【问题描述】:

我有一个数据集,其中包含每个人的多个观察结果。在某些情况下,一个人的种族会记录在某些行中,但在其他行中会丢失。在 R 中,如何将 NA 替换为其他行中所述的种族而无需手动更改它们?

例子:

PersonID        Ethnicity
   1                A
   1                A
   1                NA
   1                NA
   1                A
   2                NA
   2                B
   2                NA
   3                NA
   3                NA
   3                A
   3                NA

需要:

PersonID        Ethnicity
   1                A
   1                A
   1                A
   1                A
   1                A
   2                B
   2                B
   2                B
   3                A
   3                A
   3                A
   3                A

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以使用 fill 中的 tidyr

    df %>%
     group_by(PersonID)%>%
     fill(Ethnicity,.direction = "downup")
    
    # A tibble: 12 x 2
    # Groups:   PersonID [3]
       PersonID Ethnicity
          <int> <fct>    
     1        1 A        
     2        1 A        
     3        1 A        
     4        1 A        
     5        1 A        
     6        2 B        
     7        2 B        
     8        2 B        
     9        3 A        
    10        3 A        
    11        3 A        
    12        3 A        
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-20
      • 2021-06-28
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      • 2021-03-28
      相关资源
      最近更新 更多