【问题标题】:fill gap in dataframe [duplicate]填补数据框中的空白[重复]
【发布时间】:2018-10-28 21:39:22
【问题描述】:

原始数据

id hhcode value
 1      1   4.1
 1      2   4.5
 1      3   3.3
10      5   3.2

所需输出

id hhcode value
1      1   4.1
1      2   4.5
1      3   3.3
1      5    0  
10     1    0  
10     2    0  
10     3    0  
10     5   3.2

到目前为止的情况

df <- data.frame(
 id      = c(1, 1, 1, 10),
  hhcode  = c(1, 2, 3, 5),
  value   = c(4.1, 4.5, 3.3, 3.2)
)

library(statar)
library(tidyverse)
df %>% 
  group_by(id) %>% 
  fill_gap(hhcode, full = TRUE)

# A tibble: 10 x 3
# Groups:   id [2]
      id hhcode value
   <dbl>  <dbl> <dbl>
 1     1      1   4.1
 2     1      2   4.5
 3     1      3   3.3
 4     1      4  NA  
 5     1      5  NA  
 6    10      1  NA  
 7    10      2  NA  
 8    10      3  NA  
 9    10      4  NA  
10    10      5   3.2

获得所需输出的任何提示?

【问题讨论】:

    标签: r data-manipulation tidyverse


    【解决方案1】:

    我们可以使用complete

    library(tidyverse)
    complete(df, id, hhcode, fill = list(value = 0))
    # A tibble: 8 x 3
    #     id hhcode value
    #  <dbl>  <dbl> <dbl>
    #1     1      1   4.1
    #2     1      2   4.5
    #3     1      3   3.3
    #4     1      5   0  
    #5    10      1   0  
    #6    10      2   0  
    #7    10      3   0  
    #8    10      5   3.2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 2012-10-19
      • 2021-11-11
      • 2015-08-19
      • 1970-01-01
      • 2011-03-07
      相关资源
      最近更新 更多