• SAS 中读取文件的方式


    首先明确文件的格式:

    1. 文本文件

    2. xlsx 文件(电子表格文件)

    对于文本文件,由于有很大的变化性,比如使用空格分隔,使用逗号分隔,使用冒号分隔等等,当然也可以按列读取。

     (1)使用空格分隔

    原始数据为:

    1 * 使用空格分隔的文件数据 ;
    2 data temp;
    3 infile "C:UsershrDesktopperson
    aw.txt" delimiter=" ";
    4 input age weight;
    5 run;
    6 
    7 proc print data=temp;
    8 run;

     结果是:

    (2)使用逗号、冒号隔开,只需要将 delimiter= 中的内容换掉即可,其他同上。

    1 * 使用空格分隔的文件数据 ;
    2 data temp;
    3 infile "C:UsershrDesktopperson
    aw.txt" delimiter=",";
    4 input age weight;
    5 run;
    6 
    7 proc print data=temp;
    8 run;

    (3)使用 tab 隔开

    1 * 使用tab分隔的文件数据 ;
    2 data temp;
    3 infile "C:UsershrDesktopperson
    aw.txt" delimiter="09"x;
    4 input age weight;
    5 run;
    6 
    7 proc print data=temp;
    8 run;

    对于 xlsx 文件,和上面两个不太一样。

    原始数据为:

    (1)使用 sql 语句进行读取

     1 * 读取表格文件的方法 ;
     2 /* 第一种使用 sql 语句 */
     3 proc sql;
     4 connect to excel(path="C:UsershrDesktopperson
    aw.xlsx");
     5 create table person as
     6 select
     7     * 
     8 from
     9     connection
    10 to
    11     excel(select * from [sheet1$]);
    12 disconnect from excel;
    13 quit;

    结果为:

    (2)使用 import procedure 进行读取,常使用这个,这个可以使用多个格式的文件。

     1 /* 使用 proc import 导入外部文件 */
     2 proc import out=Mysas.person2 datafile="C:UsershrDesktopperson
    aw.xlsx" dbms=excel replace;
     3     range = "Sheet1$";
     4     getnames = yes;
     5     mixed = no;
     6     scantext = yes;
     7     usedate = yes;
     8     scantime = yes;
     9 run;
    10 
    11 proc print data=person;
    12 run;

    结果为:

  • 相关阅读:
    Laravel笔记
    Mysql函数大全
    nginx中文文档
    解析富文本框
    VSCode的C++环境配置,多cpp在同一文件夹(json方式)
    UltraISO光盘刻录
    plog日志库(c++)
    .NET Core安装
    Halcon深度学习——奇异值检测
    C++命名规范
  • 原文地址:https://www.cnblogs.com/elkan/p/11126684.html
Copyright © 2020-2023  润新知