Proc Append Duplication (SAS) - PullRequest
       7

Proc Append Duplication (SAS)

0 голосов
/ 05 октября 2018

Я работал над проблемой SAS, где мне нужно добавить данные.Запуск данных выполнен успешно, но он создает дубликаты каждый раз, когда я запускаю программу.

Пожалуйста, проверьте мой код и снимок экрана с таблицей:

Вопрос: Создайте новый файл "Total_Sales", добавив файл данных "Hyundai" с файлом, впервые созданным в задаче 3.

/*Problem 3*/:
data avik1.var1;
length uniqueid $50 Manufacturer $ 50 Model $20 Sales_in_thousands 8 _4_year_resale_value 8 Price_in_thousands 8;
retain uniqueid Manufacturer Model Latest_Launch Sales_in_thousands _4_year_resale_value Price_in_thousands;
set avik1.conc(drop= Vehicle_type Engine_size Horsepower Wheelbase Width Length Curb_weight Fuel_capacity Fuel_efficiency );
informat Latest_Launch date9.;
format Latest_Launch ddmmyy10.;
run;
proc print data = avik1.var1;
run;

/* Data To be Appended */
data avik1.hyundai;
length uniqueid $ 50 Manufacturer $ 50 Model $20 Sales_in_thousands 8 _4_year_resale_value 8;
informat Latest_Launch date7. ;
format Latest_Launch ddmmyy10.;
input Manufacturer $ Model $ Sales_in_thousands _4_year_resale_value Latest_Launch;
uniqueid=(Model||Manufacturer);
cards;
Hyundai Tuscon 16.919 16.36 2Feb12
Hyundai i45 39.384 19.875 3Jun11
Hyundai Verna 14.114 18.225 4Jan12
Hyundai Terracan 8.558 29.775 10Mar11
;
run;
Proc Print data = avik1.hyundai;
run;

Теперь я использовал следующий код для добавления:

data avik1.total_sales;
set avik1.var1 avik1.hyundai;
proc append base=avik1.var1 new=avik1.hyundai force;
run;
proc print data= avik1.total_sales;
run;

Программа запускается, но получает дубликаты, которые вы можете проверить на изображении Снимок экрана в желтой метке показывает дубликаты

Я новичок в SAS и очень ценю ваш ответ и решение этой проблемы.Также, пожалуйста, скажите мне, почему это происходит.

Спасибо!

1 Ответ

0 голосов
/ 05 октября 2018

Вы запускали его дважды?Я предполагаю, но это может быть причиной, по которой вы видите дубликаты.Я попытаюсь объяснить.

В своем коде добавления здесь вы создаете новый набор данных total_sales, комбинируя var1 и hyundai:

data avik1.total_sales;
set avik1.var1 avik1.hyundai;

В приведенном ниже коде вы не создаетеновый набор данных, вы расширяете var1, добавляя записи из hyundai.

proc append base=avik1.var1 new=avik1.hyundai force;
run;

Если вы запустили этот proc add и затем снова выполнили первый шаг данных, у вас будут дубликаты всех записей hyundai, потому что вывзяв EXPANDED var1 и повторно добавив записи hyundai.

Таким образом, для ответа на исходный вопрос процедура добавления процедур совершенно не нужна.Вы достигли этого только с шагом данных.

...