填充 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
我遇到了一些在 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