在使用PROC IMPORT创build之后修改SAS数据集
我有一个这样的数据集
Obs MinNo EurNo MinLav EurLav 1 103 15.9 92 21.9 2 68 18.5 126 18.5 3 79 15.9 114 22.3
我的目标是从上面的数据集中创build一个像这样的数据集:
Obs Min Eur Lav 1 103 15.9 No 2 92 21.9 Yes 3 68 18.5 No 4 126 18.5 Yes 5 79 15.9 No 6 114 22.3 Yes
基本上我拿4列,并将它们附加到2列+分类表明他们来自哪两组列
这是我迄今为止
PROC IMPORT DATAFILE='f:\data\order_effect.xls' DBMS=XLS OUT=orderEffect; RUN; DATA temp; INFILE orderEffect; INPUT minutes euros @@; IF MOD(_N_,2)^=0 THEN lav='Yes'; ELSE lav='No'; RUN;
我的问题是我怎样才能导入一个Excel工作表,但随后修改它创build的SAS数据集,所以我可以推后面的两列下面的前两个,并添加第三列根据哪些列来自?
我知道如何通过将数据集分成两个数据集,然后将模式函数追加到另一个数据集上,但使用上面的模式函数会快很多。
你非常接近,但却误解了PROC IMPORT
function。
当PROC EXPORT
完成时,它将创build一个名为orderEffect
的SAS数据集, orderEffect
包含来自工作表中各列的SASvariables。 你只需要做一个小小的数据步骤程序来给你想要的结果。 尝试这个:
data want; /* Define the SAS variables you want to keep */ format Min 8. Eur 8.1; length Lav $3; keep Min Eur Lav; set orderEffect; Min = MinNo; Eur = EurNo; Lav = 'No'; output; Min = MinLav; Eur = EurLav; Lav = 'Yes'; output; run;
这假定PROC IMPORT
步骤创build了一个具有这些名称的数据集。 首先运行该步骤以确保在必要时修改程序。