设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1322|回复: 0

SAS 读取数据文件

[复制链接]

8

主题

97

金钱

143

积分

入门用户

发表于 2019-9-4 15:25:09 | 显示全部楼层 |阅读模式

每次读取数据时需要告诉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;
1
2
3
4
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;
1
2
3
4
5
6
7
8
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;
1
2
3
4
5
NOTE:在读取数据的时候,首先要查看原始数据源,在无法确定数据中的分隔符或者列宽时,
可运用SAS操作界面导入相应的数据,然后查看Log,根据log中的代码编写SAS code。
采取LIST 导入,column导入,或者Formatted 导入
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表