我有一个旧的数据集,该数据集每年都会记录许多城市的高温。每个观察值都有七个变量:市州Year1 Year2 Year3 Year4 Year5
我也有一个新的数据集,该数据集有几年重叠的年度高温记录。每个观察值都有七个变量:城市州Year3 Year4 Year5 Year6 Year7
新数据集中的某些城市与旧数据集中的城市相同,有些则是全新的。我想将两个数据集与一个具有9个变量的数据集合并:City State Year1 Year2 Year3 Year4 Year5 Year6 Year7
对于同时出现在两个数据集中的那些城市,情况很复杂。对于重叠的年份Year3 Year4 Year5,新数据集中的非缺失值表示对旧数据集的更正,新数据集中的这些非缺失值应出现在合并的数据集中;新数据集中缺少值表示未对旧数据集进行校正,而旧数据集中的值应出现在合并的数据集中。
在这种情况下如何最好地合并两个数据集?
答案 0 :(得分:0)
更新应该适合您。下面的例子应该工作。当只有第二个数据集有值时(第二个数据集没有值缺失更新),第二个数据集将更新第一个记录。它还会根据第二个数据添加新的城市,请尝试运行以下示例。
data old_dataset;
input City $ State $ Year1 Year2 Year3 Year4 Year5;
datalines;
city1 state1 90 80 70 60 50
city3 state3 90 80 . 60 50
;
data new_dataset;
input City $ State $ Year1 Year2 Year3 Year4 Year5 Year6 Year7;
datalines;
city1 state1 . . . . . . .
city2 state2 90 80 70 60 50 90 80
city3 state3 90 80 90 60 . 60 50
;
proc sort data=old_dataset;
by city;
run;
proc sort data=new_dataset;
by city;
run;
data want;
update old_dataset new_dataset;
by city;
run;
更新后,发生以下情况 1.添加新列 2.第一个数据集的第二个数据集更新列的不丢失值。