在从csv读取数据时,SAS如何识别观察结束?

时间:2017-07-09 13:04:49

标签: csv sas

我的csv文件sales.csv有8个变量

Employee_ID,First_Name,Last_Name,Gender,Salary,Job_Title,country和Emp_Hire_Date

我的代码是这样的:

%let path = /folders/myfolders/ecprg193;
data work.sales1;
   infile "&path/sales.csv" dlm=',';  
   input Employee_ID First_Name $
         Last_Name $ Gender $ Salary
         Job_Title $ Country $;
run;

它基本上是从csv文件创建数据集sales1。

在你可以看到的代码中,我已指定直到country变量。 我的问题是在创建数据集时工作.sales1如何跳过CSV中的hiredate数据

如果需要更多信息来回答这个问题,请告诉我。

1 个答案:

答案 0 :(得分:0)

根据您的描述,您的文件每行有8个字段,而您的程序每行只读取7个变量。所以它会跳过最后一个字段,因为你从未读过它。

默认情况下,SAS会期望由操作系统的正常行尾字符分隔的可变长度记录。从您的路径看,您在Unix上运行SAS,因此默认的行尾将只是换行符('0A'x)。如果你在PC上创建了文件,那么很可能它实际上是使用回车符和换行符两个字节序列('0D0A'x)作为行尾创建的。您可以通过在TERMSTR=语句中添加INFILE选项来告诉SAS使用哪一个。如果您正在Unix上阅读PC / Windows文件,请添加termstr=CRLF