填充 r 中所有月份的缺失值

filling missing values for all months in r

我遇到了一些在 R 中一定很容易的事情。

假设我们有这样的数据。

df <- read.table(text="id,date,value
1,202105,10
1,202106,5
1,202107,7
1,202108,8
1,202109,6
1,202110,1
1,202111,9
2,202110,10
2,202111,2
2,202112,4
2,202201,7",sep=",",header=TRUE)

id     date      value
1      202105    10
1      202106    5
1      202107    7   
1      202108    8 
1      202109    6 
1      202110    1 
1      202111    9 
2      202110    10
2      202111    2
2      202112    4
2      202201    7  

我想获取每个 ID 的数据,添加所有具有 NA 值的日期。

id     date      value
1      202105    10
1      202106    5
1      202107    7   
1      202108    8 
1      202109    6 
1      202110    1 
1      202111    9 
1      202112    NA    
1      202201    NA
2      202105    NA
2      202106    NA
2      202107    NA
2      202108    NA
2      202109    NA
2      202110    10
2      202111    2
2      202112    4
2      202201    7  

非常感谢您!

使用tidyr::complete:

tidyr::complete(df, id, date)

# A tibble: 18 × 3
      id   date value
   <int>  <int> <int>
 1     1 202105    10
 2     1 202106     5
 3     1 202107     7
 4     1 202108     8
 5     1 202109     6
 6     1 202110     1
 7     1 202111     9
 8     1 202112    NA
 9     1 202201    NA
10     2 202105    NA
11     2 202106    NA
12     2 202107    NA
13     2 202108    NA
14     2 202109    NA
15     2 202110    10
16     2 202111     2
17     2 202112     4
18     2 202201     7