2017-06-02 112 views
1

我有一个带有许多“NA”值和特殊字符(如ä,ö或ß)的csv文件。我想通过proc import导入这个CSV文件导入SAS,但不幸的是我有两个问题:将特殊字符和NA的csv导入SAS不起作用

1)NA的读为字符,而不是遗漏值

2)特殊字符自动变成像@!+ - 〜

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

+1

您使用的是什么版本的SAS? SAS会话使用什么编码? – Tom

+0

感谢您的回复Tom,根据r.user.05apr的回答,我已经能够解决我的问题了。 – JSP

回答

2

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

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设定NA =在write.csv“”)

关于特殊字符的问题,定义变量作为字符在了信息-statement应该可以工作。

+0

非常感谢r.user.05apr,工作! – JSP