Обновление набора данных с некоторой исправленной информацией, новой информацией - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть старый набор данных с рекордно высокими годовыми температурами для ряда городов.Каждое наблюдение имеет семь переменных: Город Штат Год1 Год2 Год3 Год4 Год5

У меня также есть новый набор данных с рекордно высокими годовыми температурами для перекрывающегося диапазона лет.Каждое наблюдение имеет семь переменных: Город-государство Год3 Год4 Год5 Год6 Год7

Некоторые города в новом наборе данных такие же, как и в старом наборе данных, некоторые совершенно новые.Я хотел бы объединить два набора данных в одну с девятью переменными: Город Штат Год1 Год2 Год3 Год4 Год5 Год6 Год7

Для тех городов, которые указаны в обоих наборах данных, ситуация сложная.Для перекрывающихся лет Year3 Year4 Year5 не пропущенные значения в новом наборе данных указывают на исправление старого набора данных, и эти не пропущенные значения в новом наборе данных должны появиться в объединенном наборе данных;отсутствующие значения в новом наборе данных указывают на отсутствие коррекции к старому набору данных, а значения в старом наборе данных должны отображаться в объединенном наборе данных.

Как лучше объединить два набора данных в этих обстоятельствах?

1 Ответ

0 голосов
/ 26 ноября 2018

Обновление должно работать на вас.Пример ниже должен работать.2-й набор данных обновляет записи первой, когда только 2-й набор данных имеет значение (он не обновляется с отсутствующим значением).он также добавляет новые города из 2-ых данных, попробуйте запустить приведенный ниже пример.

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. Не пропущены значения в столбце обновлений 2-го набора данных первого набора данных.

...