【问题标题】:Weird character variable dont convert to numeric奇怪的字符变量不转换为数字
【发布时间】:2019-05-06 03:07:19
【问题描述】:

我有这些 txt New_Wireless_Fixed,当我使用数据步骤读取它时,它会读取 Sale/Funds 的值,但它不会将其转换为数字,当我尝试将其从其他非数字字符中清除然后转换时它,我只得到缺失值。我已经尝试了两天,但我无法使其工作。谁能告诉我我做错了什么以及如何解决?

Data df;
    Infile 'C:\Users\psuphare\ASP\New_Wireless_Fixed.txt';     
    Input 
        @1  AcctNo      $13.
        @15 ActDt       MMDDYY10.
        @26 DeactDt     MMDDYY10.
        @41 DeactReason $4.
        @46 GoodCredit  8.
        @55 RatePlan    8.
        @65 DealerType  $2.
        @68 Age         8.
        @80 Province    $2.
        @85 Sale        COMMA8.2        
        ;    

Run;

这是数据集: https://drive.google.com/file/d/1I2cmx9_HjIA7yzRUWg1axkmZjyrzL_yY/view?usp=sharing

【问题讨论】:

  • 建议在帖子中包含所有信息,而不是作为外部网站(Google Drive)的链接。见Is it OK to share files with Dropbox and other file-sharing services in posts?
  • 刚刚在前 30 条记录上运行了您的代码,它运行良好。到底出了什么问题?
  • 您需要显示日志中的注释。如果您注意到 SAS 换行了,您可能需要 TRUNCOVER INFILE 语句选项。
  • 或者您可以使用 LRECL= 和 PAD 选项来模拟固定长度记录。

标签: input sas character numeric


【解决方案1】:

我猜你需要使用 INFILE 语句选项 TERMSTR。

【讨论】:

    【解决方案2】:

    谢谢你们。很抱歉谷歌驱动器中的文件,这是我共享数据集的唯一方法。问题不在于 SAS 没有将文本文件读入表格,问题在于当我尝试在聚合函数中使用该变量(Sale,标签 Funds)时,它不起作用,因为它说该函数需要一个数字输入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-27
      • 1970-01-01
      • 2014-05-19
      • 2020-10-16
      • 2013-01-10
      • 1970-01-01
      • 2014-02-27
      • 2014-08-28
      相关资源
      最近更新 更多