【问题标题】:Import of special characters & NA's of csv into SAS does not work将csv的特殊字符和NA导入SAS不起作用
【发布时间】:2017-11-03 17:54:24
【问题描述】:

我有一个 csv 文件,其中包含许多“NA”值和特殊字符,例如 ä、ö 或 ß。我想通过proc import将这个csv文件导入SAS,但不幸的是我有两个问题:

1) NA 被读取为字符而不是缺失值

2) 特殊字符会自动变成@!+-~之类的东西

当我将 csv 导入 R 时,我能够解决编码“UTF-8”的两个问题 - NA 被识别为缺失并且特殊字符被正确显示。我的想法是将文件从R 导出为dbf 文件,然后将此dbf 文件导入SAS。此过程解决了 NA 的问题,但是,特殊字符再次以错误的方式显示。我也在 SAS 中尝试了不同的编码,但这也没有用。任何帮助都非常感谢!

【问题讨论】:

  • 您使用的是什么版本的 SAS?您的 SAS 会话使用什么编码?
  • 感谢您的回复 Tom,根据 r.user.05apr 的回答,我已经能够解决我的问题了。

标签: r import character-encoding sas export


【解决方案1】:

我会使用数据步骤而不是过程导入。它可能看起来像:

Data MyCSV;
  Infile "C:\MyName\ImportData.CSV"
         Delimiter="," LRecL=1000 DSD Missover Firstobs=2; * Firstobs=2 to delete col-names;
  Informat qty_txt $9. ; * 9 .. length in characters;
  If qty_txt ^= "NA" Then qty=Input(qty_txt,Best15.); Drop qty_txt;
Run;

(如果您从 R 中导出 set na="." in write.csv。)

关于特殊字符问题,在informat-statement中将变量定义为字符应该可以工作。

【讨论】:

    猜你喜欢
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 2023-03-17
    • 2014-02-10
    • 1970-01-01
    相关资源
    最近更新 更多