从 Excel 行导入 SAS 列名称
Importing SAS column names from Excel row
我正在尝试从如下所示的 XLSX Excel 文件创建 SAS table。 SAS 列名将位于 Excel 文件中的第 3 行,并从第 5 行读取数据。
A B C D F ...
1
2
3 Date Period Rate Rate down Rate up ...
4
5 2015-04-30 1 0.25 0.23 0.27 ...
6 2015-05-31 2 0.21 0.19 0.23 ...
. .........................................
. .........................................
我正在使用 proc import
收集 table 如下:
proc import datafile = have out=want DBMS = excel;
GETNAMES=YES; MIXED=YES; SCANTEXT=YES; USEDATE=YES; DATAROW=5;
run;
问题是 Proc Import
像 Excel 文件的其余部分一样采用数字格式的第 3 行中的列名,因此 SAS 将 "."
而不是像这样的列名Date
或 Rate
因为 SAS 不将它们理解为数值。
我发现 proc import
选项,例如 DATAROW=5
从第五行读取数据, MIXED=YES
表示 Excel-table 包括数字和字符值。 GETNAMES=YES
从 table 中获取列名,SCANTEXT=YES
扫描您可以理解的文本。但是,即使使用这些选项,我也得到了与下面相同的 SAS table。整个 SAS-table 是数字格式,所以它无法解析来自 Excel:
的名称
F1 F2 F3 F4 F5 ...
1 . . . . . ...
2 . . . . . ...
3 30APR2015 1 0.25 0.23 0.27 ...
4 31MAY2015 2 0.21 0.19 0.23 ...
. ...............................
. ...............................
知道如何将 XLSX 文件的第 3 行作为我在 SAS 中的列名导入吗table?
好的。我找到了解决方案。我应该添加一个简单的选项,如 RANGE=A3:G2000
。在一个非常奇怪的事情中,选项 DATAROW=5
出错了,所以我删除了它。所以代码变成:
proc import datafile = have out=want DBMS = excel;
GETNAMES=YES; MIXED=YES; SCANTEXT=YES; USEDATE=YES; RANGE='A3:G2000';
run;
现在可以了。但是那个RANGE
选项不是每个网页都写的,很难找到。
同样很奇怪的是,SAS 无法意识到像 "Date" 这样的字符值应该是字符格式。但是当你使用范围选项时它会意识到这一点?
我正在尝试从如下所示的 XLSX Excel 文件创建 SAS table。 SAS 列名将位于 Excel 文件中的第 3 行,并从第 5 行读取数据。
A B C D F ...
1
2
3 Date Period Rate Rate down Rate up ...
4
5 2015-04-30 1 0.25 0.23 0.27 ...
6 2015-05-31 2 0.21 0.19 0.23 ...
. .........................................
. .........................................
我正在使用 proc import
收集 table 如下:
proc import datafile = have out=want DBMS = excel;
GETNAMES=YES; MIXED=YES; SCANTEXT=YES; USEDATE=YES; DATAROW=5;
run;
问题是 Proc Import
像 Excel 文件的其余部分一样采用数字格式的第 3 行中的列名,因此 SAS 将 "."
而不是像这样的列名Date
或 Rate
因为 SAS 不将它们理解为数值。
我发现 proc import
选项,例如 DATAROW=5
从第五行读取数据, MIXED=YES
表示 Excel-table 包括数字和字符值。 GETNAMES=YES
从 table 中获取列名,SCANTEXT=YES
扫描您可以理解的文本。但是,即使使用这些选项,我也得到了与下面相同的 SAS table。整个 SAS-table 是数字格式,所以它无法解析来自 Excel:
F1 F2 F3 F4 F5 ...
1 . . . . . ...
2 . . . . . ...
3 30APR2015 1 0.25 0.23 0.27 ...
4 31MAY2015 2 0.21 0.19 0.23 ...
. ...............................
. ...............................
知道如何将 XLSX 文件的第 3 行作为我在 SAS 中的列名导入吗table?
好的。我找到了解决方案。我应该添加一个简单的选项,如 RANGE=A3:G2000
。在一个非常奇怪的事情中,选项 DATAROW=5
出错了,所以我删除了它。所以代码变成:
proc import datafile = have out=want DBMS = excel;
GETNAMES=YES; MIXED=YES; SCANTEXT=YES; USEDATE=YES; RANGE='A3:G2000';
run;
现在可以了。但是那个RANGE
选项不是每个网页都写的,很难找到。
同样很奇怪的是,SAS 无法意识到像 "Date" 这样的字符值应该是字符格式。但是当你使用范围选项时它会意识到这一点?