SAS 读取数据文件

每次读取数据时需要告诉SAS3件事
1:数据存在哪里?
2:数据的形式
3:创建的数据集的类型(永久/临时)

1 读取SAS数据集

 DATA temp;			/*temp 为创建的数据集名称*/
      INFILE 'C\mysas\data\temp.dat';		/*数据存放的位置 */
      INPUT id 1-4 gender 6 height 8-9 weight 11-13; /*指名数据的类型,用column方式导入,也可根据实际情况使用list或着formatted*/
 RUN;

2 读取EXCEL 文件

PROC IMPORT  DATAFILE='C:\mysas\dtasource\score.xls' /*指明excel文件存放位置*/
    OUT = data_set_name                             /*指定输出数据集名称*/
    DBMS = EXCEL REPLACE;                       /*告知SAS读取的文件类型 ,REPLACE表明若数据集已存在则替换*/
    SHEET = "sheet_name";                       /*可选,读取文件的sheet名*/
    RANGE = "sheetname$a2:c4";                  /*可选,读取文件的位置*/
    GETNAMRS = NO;                              /*可选,默认值YES,以读取文件的第一行为标题名*/
    MIXED = YES;                                /*可选,默认值为NO,当某列值同时包含2种数据类型使,默认将数值转换为缺失值,若将其设为YES,则将数值转换位字符类型*/
RUN;

3 在使用DATA步读取数据集时,还有以下选项:
INFILE 下的选项 DLM= ,若使用列表读取数据集,且使用空格分割数据,则不需要DLM选项,
若分隔符为逗号,则DLM= ‘,’;
若分隔符为制表符,则DLM= ‘09’X;
DSD选项:忽略用引号括起来的分隔符,不会把引号作为数值的一部分读取,将两个连续的分隔符视为缺失值
MISSOVER选项:告知SAS当前行数据不够时,不要跳到下一行继续读取。
FIRSROBS = 选项告诉SAS从第几行数据开始读取,
OBS= 选项告诉SAS读至第几行;

例:
DATA example1;
    INFILE 'C\mysas\data\temp.txt' DLM='09'X MISSOVER FIRSTOBS=2;
    INPUT ID $ GENDER $ SCORE;
RUN;

NOTE:在读取数据的时候,首先要查看原始数据源,在无法确定数据中的分隔符或者列宽时,
可运用SAS操作界面导入相应的数据,然后查看Log,根据log中的代码编写SAS code。
采取LIST 导入,column导入,或者Formatted 导入

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值