使用一些已更正的信息和一些新信息更新数据集

时间:2018-11-25 22:12:04

标签: sas

我有一个旧的数据集,该数据集每年都会记录许多城市的高温。每个观察值都有七个变量:市州Year1 Year2 Year3 Year4 Year5

我也有一个新的数据集,该数据集有几年重叠的年度高温记录。每个观察值都有七个变量:城市州Year3 Year4 Year5 Year6 Year7

新数据集中的某些城市与旧数据集中的城市相同,有些则是全新的。我想将两个数据集与一个具有9个变量的数据集合并:City State Year1 Year2 Year3 Year4 Year5 Year6 Year7

对于同时出现在两个数据集中的那些城市,情况很复杂。对于重叠的年份Year3 Year4 Year5,新数据集中的非缺失值表示对旧数据​​集的更正,新数据集中的这些非缺失值应出现在合并的数据集中;新数据集中缺少值表示未对旧数据集进行校正,而旧数据集中的值应出现在合并的数据集中。

在这种情况下如何最好地合并两个数据集?

1 个答案:

答案 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.第一个数据集的第二个数据集更新列的不丢失值。