【发布时间】:2017-05-12 00:08:45
【问题描述】:
(SAS 初学者、一些 SQL 和一些 Excel 经验(无 VBA))
我有一个场景,我希望将 Excel 中的数据字典分解为 SAS 数据。数据字典包含一个单元格中的 Alt+Enters(换行符),我想将其分成单独的行。
我的工具:
- Windows 7 上的 SAS 9.4
- Excel 2010
实际 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 换行符 (Alt + Enter) 作为 分隔符(行?)
- 使用等号 (=) 作为分隔符
- 在展开数据值时维护变量名
注意事项:
- 原始单元格值中可以有空白值
- 原始单元格值中可以有不带等号 (=) 的值
寻找执行此操作的最佳方法的建议(例如,只需将 Excel 文件导入 SAS,然后在 SAS 工具中使用它)。
这是我当前将 Excel 电子表格导入 SAS 的数据导入步骤:
PROC IMPORT datafile="filepath" dbms=xlsx out=temp REPLACE;
RANGE="SheetName$A1:B";
DATAROW=2;
RUN;
【问题讨论】:
标签: excel import sas import-from-excel