(SAS初学者,一些SQL和一些Excel经验(无VBA))
我有一个场景,我希望将Excel中的数据字典分解为SAS数据。数据字典包含一个单元格中的Alt + Enters(换行符),我希望将其划分为单独的行。
我的工具:
实际Excel数据(使用Alt + Enter):
Variable | Cell
Name | Value
-------------------------
Var1 | Val1 = abc <- there is an Alt+Enter
| Val2 = def <- there is an Alt+Enter
| Val3 = ghi
-------------------------
Var2 | Val1 = jkl <- there is an Alt+Enter
| Val2 = mno
-------------------------
Var3 |
-------------------------
Var4 | Words
我希望我的最终数据(在SAS中)看起来像:
Variable | Var | Var
Name | Code | Value
-------------------------------
Var1 | Val1 | abc
Var1 | Val2 | def
Var1 | Val3 | ghi
-------------------------------
Var2 | Val1 | jkl
Var2 | Val2 | mno
-------------------------------
Var3 | |
-------------------------------
Var4 | Words |
在这种情况下,我发现我需要:
注意:
寻找有关执行此操作的最佳方式的建议(例如,只需将Excel文件导入SAS,并在SAS工具中使用它)。
这是我将Excel电子表格带入SAS的当前数据导入步骤:
PROC IMPORT datafile="filepath" dbms=xlsx out=temp REPLACE;
RANGE="SheetName$A1:B";
DATAROW=2;
RUN;
答案 0 :(得分:0)
Excel会在按下Alt-Enter的位置放置一个回车符。
data want ;
set temp;
do i=1 to countw(cellvalue,'0d'x);
varcode = scan(cellvalue,i,'0d'x);
varvalue = scan(varcode,2,'=');
varcode = scan(varcode,1,'=');
output;
end;
run;