【问题标题】:Truncating characters when importing with SAS使用 SAS 导入时截断字符
【发布时间】:2012-01-26 10:04:11
【问题描述】:

我有一个包含公司数据和说明的 Excel 电子表格。一些单元格中基本上包含小论文,单个单元格中包含的页面和纯文本页面。当我导入文件时,SAS 一直给我带来问题,因为它会截断一些较长的单元格,并且文本会在句子中间被截断。关于如何避免这种情况的任何想法?我尝试将文件保存到制表符分隔的文本文件,但没有运气。

谢谢!

【问题讨论】:

    标签: excel import sas truncation csv


    【解决方案1】:

    正如您所说,导出到制表符分隔或 csv 可能是可行的方法。确保也将字符串括在引号中。但是你有为包含长单元格的变量指定的长度吗?根据 SAS,最大长度为 32,767 个字符,因此可以尝试尽可能大的数字——希望小于这个数字。

    此外,lrecl(文件每行的最大长度)应指定为最大值 32767。

    data test;
      length company_name $20 description1 description2 $10000;
      infile my_tab_dlm_file lrecl = 50000 dsd delimiter = '09'x;
      input company_name
            description1
            description2
       ;
    run;
    

    【讨论】:

    • 您可能还想检查您正在导入的文本是否不包含任何导致过早截断的制表符......而且没有人喜欢这样......
    • 谢谢。手动输入所有变量有点痛苦,但它完成了工作。
    • re:Rob Penridge:这就是为什么在字符串周围使用引号可能会有所帮助(在原始制表符分隔的数据中)。 DSD 选项将忽略引号中包含的选项卡。
    【解决方案2】:

    如果您有 SAS/ACCESS (which this link explains how to check) 的许可证。您可以使用 libname 访问 Excel 电子表格 (this link talks about Excel access) this is a great paper which details how to get at the Excel data just like a SAS data set

    (但@Neil Neyman 的回答听起来也不错)

    【讨论】:

      猜你喜欢
      • 2018-08-13
      • 2017-03-24
      • 2021-12-22
      • 2014-09-19
      • 2015-07-08
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多