首页 > 解决方案 > 使用一些更正的信息和一些新信息更新数据集

问题描述

我有一个旧数据集,其中有许多城市的年度高温记录。每个观测值有七个变量: City State Year1 Year2 Year3 Year4 Year5

我还有一个新的数据集,其中在重叠的年份范围内每年都有创纪录的高温。每个观测值有七个变量: City State Year3 Year4 Year5 Year6 Year7

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

对于出现在这两个数据集中的那些城市,情况很复杂。对于重叠年份,Year3 Year4 Year5,新数据集中的非缺失值表示对旧数据​​集的修正,新数据集中的这些非缺失值应该出现在合并数据集中;新数据集中的缺失值表示对旧数据​​集没有更正,旧数据集中的值应出现在合并数据集中。

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

标签: sas

解决方案


更新应该适合你。下面的例子应该工作。当只有第二个数据集有值时,第二个数据集更新第一个数据集的记录(它不更新缺失值)。它还从第二个数据添加了新城市,请尝试运行下面的示例。

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. 第二个数据集的非缺失值更新了第一个数据集的列。


推荐阅读