美文网首页
《The Little SAS Book》学习笔记---Chap

《The Little SAS Book》学习笔记---Chap

作者: RSP小白之路 | 来源:发表于2023-08-31 08:36 被阅读0次

    数据文件除了空格作为分隔符之外,常见的还有逗号分隔符csv文件和制表符分隔的excel文件。

    SASinfile语句提供了两个易于读取分隔符文件的选项DLM选项和DSD选项。

    DLM选项

    infile语句中使用DLM=选项或者DELIMITER=选项可以指定分隔符进行数据的读取。

    如果分隔符是字符串,则可以使用DLMSTR=选项进行指定。

    下面是读取逗号分隔符的一个例子:

    
    data dt2;
        infile datalines  delimiter =",";
         input year month day ;
    datalines;
    2012, 12 ,23,
    2014, 05 ,,
    2014,  ,15,
    2015 ,09, 12,
    ;
    run;
    
    proc print data =dt2 noobs;title; run;
    

    打印结果:

    year month day
    2012 12 23
    2014 5 .
    2014 . 15
    2015 9 12

    DSD选项

    infile语句中的DSD(分隔符敏感数据)选项做三件事:

    • 忽略引号括起来的数据中的分隔符
    • 不会把引号作为数据一部分读取
    • 连续两个分隔符视为缺失值

    另外注意,DSD假设文件的分隔符是逗号,如果不是,可以配合DLM=进行指定。

    CSV文件是使用DSD读取的常见文件格式。

    用下面这个简单的小例子说明一下:

    data temp;
        infile datalines  dlm ="," DSD;
         input  Name $ type $ value  ;
    datalines;
    AGHJkd,helasj, 3647
    'sghd,sji',hjdeh, 878
    Hajsnh,,,
    ;
    run;
    
    proc print data =temp noobs;title; run;
    

    打印结果:

    Name type value
    AGHJkd helasj 3647
    sghd,sji hjdeh 878
    Hajsnh .

    可以看到引号括起来的'sghd,sji'中的分隔符,没有被读取,两个连续的分隔符被认为是缺失值

    相关文章

      网友评论

          本文标题:《The Little SAS Book》学习笔记---Chap

          本文链接:https://www.haomeiwen.com/subject/oeenpdtx.html