【问题标题】:long text file to SAS Dataset长文本文件到 SAS 数据集
【发布时间】:2015-05-29 20:34:17
【问题描述】:

我正在尝试将大型文本文件(报告)加载为 SAS 数据集中的单个单元格,但由于多个空格和格式化数据被拆分为多个单元格。

Data l1.MD;
infile 'E:\Sasfile\f1.txt' truncover;
input text $char50. @;
run;

我有 50 个此类文件要上传,因此将每个文件保存为单个单元格是最重要的。我在这里错过了什么?

【问题讨论】:

  • 请发布一些您的文本文件的示例。
  • 您只想要 1 个变量和 1 个观察值?文本文件有多大?您已将变量设置为只有 50 个字符长……它只能保存前 50 个字符。

标签: import sas large-files


【解决方案1】:
Data l1.MD;
  infile 'E:\Sasfile\f1.txt' recfm=f lrecl=32767 pad;
  input text $char32767.;
run;

这样就可以了。 RECFM=F 告诉 SAS 具有固定的行长度(忽略换行),其他选项将行长度设置为单个变量的最大值(行可以更长,但一个变量限制为 32767 个字符)并用如果它太短,则为空格。

如果您的文本文件比这长,您最终只会得到 > 1 个单元格。请注意,换行符和/或回车符将在此文件中,这可能是好的也可能是坏的。您可以使用 '0A'x 和/或 '0D'x 识别它们(取决于您的操作系统,您可能拥有一个或两者),您可以使用 'c' 选项压缩它们或将它们转换为您喜欢的行分隔符.

【讨论】:

  • 我试过这个,但之前没有 $char32767! :) 谢谢
猜你喜欢
  • 2015-04-20
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 2016-02-16
  • 1970-01-01
  • 2018-10-06
相关资源
最近更新 更多