r语言 - 按国家生成缺失年份的变量?



Stata and R:

我正在合并两个横截面数据集。这两个数据集的国家数量相等,只有一个数据集的年份(年)为零。问题是缺少的年份根本没有记录,所以我需要创建一个新变量来添加没有其他数据的年份。否则,我无法根据国家和年份这两个键合并数据集。

在Stata中并非如此(我对R中的问题感到惊讶,但其他人必须说到这一点)。

缺失的观测值——在这个上下文中以及任何类似的更好地称为缺失的——不是问题。这里有一个演示。merge足够聪明,可以注意到缺口,并将其明确为缺失。你可以"修复"他们自己在merge之前,但这是毫无意义的。

clear
input state year y 
1  2019 1 
1  2020 2
2  2019 3
2  2020 4 
end 
save tomerge 
clear 
input state year x 
1   2019  42 
2   2019  84 
end 
merge 1:1 state year using tomerge 
list 

结果

. merge 1:1 state year using tomerge 
Result                      Number of obs
-----------------------------------------
Not matched                             2
from master                         0  (_merge==1)
from using                          2  (_merge==2)
Matched                                 2  (_merge==3)
-----------------------------------------
. 
. list 
+----------------------------------------+
| state   year    x   y           _merge |
|----------------------------------------|
1. |     1   2019   42   1      Matched (3) |
2. |     2   2019   84   3      Matched (3) |
3. |     1   2020    .   2   Using only (2) |
4. |     2   2020    .   4   Using only (2) |
+----------------------------------------+

换句话说,1:1作为语法指定了整个模式,不排除0:1或1:0匹配。如果标识符不匹配,merge实际上是append。您确实需要关键变量在两个数据集中以相同的名称存在。