【问题标题】:Import 2010 Excel Files using GuessingRows使用 GuessingRows 导入 2010 Excel 文件
【发布时间】:2014-12-02 04:18:41
【问题描述】:

我有包含混合数据类型列的电子表格,即:

Column1
13450
67/89
823ad

我希望 SAS 读取所有条目,以便它发现数据是混合的,因此将其全部导入为字符格式(否则它可以定义为数字,因此会为非数字值创建缺失的条目)。所以我需要使用 PROC IMPORT 的 'GUESSINGROWS' 功能。

我可以使用 .XLS 文件来做到这一点:

PROC IMPORT OUT=importeddata
            DATAFILE = "C:\User\Example\Excel File.xls"
            DBMS=XLS REPLACE;
       SHEET='Input';
       GETNAMES=YES;
       MIXED=YES;
       GUESSINGROWS=32767;
RUN;

但是,这些文件现在被保存为 .XLSM 文件,所以我需要使用 EXCEL 的新 DBMS。 执行此操作时,GUESSINGROWS 不再是有效语句。

有谁知道在从 .xlsm 文件导入时如何使用 GUESSINGROWS 语句?或者从 .xlsm 导入时定义输入变量格式的另一种方式?

【问题讨论】:

  • 使用libref方法和dbsatype具体指定。您使用的是什么 DBMS?
  • @Reese - 他的意思是 PROC IMPORT 中的 DBMS 选项。
  • 我知道,我的意思是输入 dbsastype,它允许您在 lib ref 方法中显式转换一列,因为他的问题是问是否有其他方法。

标签: excel import sas


【解决方案1】:

https://communities.sas.com/message/193134#193134

2014 年 1 月 8 日来自 Art 的回复正是您要查找的内容,请将您的类型更改为 CHAR 而不是 Date,并将列名更改为正确的列名。

【讨论】:

  • 如果在列的前 8 个条目中有一个字符条目,因为 libref 方法知道该列包含混合数据,这将非常有效。但是,如果前 8 个条目是数字,则 SAS 仅在列中查找数字数据,然后在有字符条目的地方抛出缺失值。我说 8 个条目的原因是 SAS 默认“检查数据类型”-guessingrows 告诉 SAS 在“决定”它是什么数据类型之前查看所有条目(克服这个问题)。 EXCEL DBMS 是否有类似的“guessingrows”功能?
猜你喜欢
  • 1970-01-01
  • 2013-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-11
相关资源
最近更新 更多