我是SAS新手,导入CSV文件时遇到问题。信息采用以下布局:
aircraft,duration,no_pasg,speed_ground,speed_air,height,pitch,distance
boeing,98.4790912,53,107.91568,109.3283765,27.41892425,4.043514571,3369.836364
boeing,125.7332973,69,101.6555886,102.8514051,27.80471618,4.117431699,2987.803924
boeing,112.0170008,61,71.05196088,,18.58938573,4.434043129,1144.922426
我运行下面的代码,得到0个观察值(不是预期的)和8个变量(预期的)。我究竟做错了什么?我甚至尝试将firstob = 2跳过包含标题的第一行但是没有帮助
我很感激帮助。
DATA FAA_DATA1;
INFILE '~/Project/Data/FAA1.csv' dsd dlm=',' firstobs=2;
INPUT aircraft $ duration no_pasg speed_ground speed_air height pitch distance;
RUN;
PROC PRINT;
RUN;
答案 0 :(得分:1)
听起来它没有看到行尾字符,所以认为你的文件是一个长行。这可以解释为什么FIRSTOBS = 2会导致你获得0次观察。日志中应该有一个关于SAS从文件中读取多少行的注释。
尝试在INFILE语句中使用TERMSTR =选项。 Unix的正常行尾是TERMSTR = LF。 Windows的正常行尾是TERMSTR = CRLF。如果您在Mac上使用Excel制作文件,那么您应该尝试使用TERMSTR = CR。
出于某种原因,Mac上的Excel仍然认为Mac OS使用CR作为文本文件的行尾字符,尽管Apple在几年前将Mac OS转换为使用Unix。保存文件时,Excel中也应该有一个选项,以逗号分隔,但使用正常的行尾字符。