过程追加复制 (SAS)



我正在处理一个需要附加数据的 SAS 问题。数据运行成功,但每次运行程序时都会创建重复项。

请检查我的代码和表格的屏幕截图:

问:通过将数据文件"Hyundai"附加到问题 3 中首次创建的文件来创建新文件"Total_Sales"。

/*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的新手,非常感谢您对此问题的回应和解决方案。也请告诉我为什么会这样。

谢谢!

你跑了两次吗?我猜,但这可能是您看到重复的原因。我会尝试解释。

在此处的追加代码中,您将通过组合 var1 和 hyundai 来创建新的数据集total_sales:

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

在下面的代码中,您不是在创建新的数据集,而是通过添加来自现代的记录来扩展 var1。

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

如果您运行此 proc 追加,然后再次运行第一个数据步骤,您将拥有所有现代记录的副本,因为您正在采用扩展的 var1 并重新添加现代记录。

所以关键是,要回答原始问题,proc 附加程序是完全没有必要的。您仅通过数据步骤就实现了它。

最新更新