20160526 数据分析与SAS3 简单实例

今天做了几个练习,主要是用不同的几种方式读取txt文档

实例1 读取文本中的数据

C盘下需要建逻辑库mydb,测试txt也放进去,用户路径下还需要存放数据文本,这个地方得注意下,否则提示物理文件错误,但是不明白为什么要在两个地方指定逻辑库,都存放数据文本呢???

libname temp 'C:\temp';

%let f1='C:\temp\abc.txt';        #%宏变量,这里用了宏替换

filename fil '(&f1)';                  #可以简写为filename fil 'C:\temp\abc.txt'  这样比较简单,不要用宏变量了

data temp.hw;

infile fil;                                     #从fil中读

input h w;                                 #数值型,8位

run;

proc_print data=temp.hw;

run;

 实例2  直接导数

 C\用户\xh\C\mydb\test.txt

 M 50 68 156

 F 52 45 154

 

data demographics;

infile 'C\mydb\test1.txt';

input gender $ age height weight;

run;

proc print data=demographics;

run; 

 

 在做这个练习时,总是提示文本物理文件不存在,检查了好久,发现,应该在本机C盘用户上新建一个C,在这个C下新建逻辑库,然后将文本也放到这个逻辑库下,文本直接命名不要加.txt

 

实例3 列指针控制读取

aaa111111bbbb

ccc222222dddd

eee333333ffff

 

libname mydb 'C:\mydb';

filename fin 'C:\mydb\test3.txt';   #指定时不喜欢用指针,直接指定方便

data test;

infile fin;

input

@1 x1 &3.    #从第一个字符开始读,字符型的,长为3个字符

@4 x2 6.       #从第四个字符开始读,默认为数据型的

@10 x3 $4.

;

run;

proc print;

run;

 

实例4 列控制符号

aaa111111bbbb

ccc222222dddd

eee333333ffff

 

libname mydb 'C:\mydb';

filename fin '(C:\mydb\test3.txt)';

data test;

infile fin;

input

x1 $1-3           #x1变量为字符型,从第一列到第三列

x2 4-9

x3 $10-13

;

run;

proc print;

run;

 

实例 5 分隔符

aaa,111111,bbbb

ccc,222222,dddd

eee,333333,ffff

 

libname mydb 'C:\mydb';

filename fin '(C:\mydb\test4.txt)';

data test;              #建立在word逻辑库下的数据集

infile fin dim=',';     #以,作为分隔符读

input x1 $ x2 x3 $;   #用input 读

run;

proc print;

run;

 

 实例6 向外部文件写

data_null_;

set mydb.student;           #指定要读的是mydb逻辑库下的数据集student

file 'C:\mydb\stu1.txt';      # file指定往哪里写

put id name $ sex $ score;  # put往里写

run;

 

 实例7  产生数据集temp 的同时,为其增加变量class,当x>50时令class=1,否则class=2

data temp;            #在work 库中建立数据集temp

input x y@@;        #采用数据连续读入方式

if x>50 then class=1;

else class=2;

cards;                   #数据块

34 56 78 90 35 67 89

;

proc print;

run;

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值