加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载][SAS] 使用OBS=指令取出部分数据

(2014-11-28 14:16:03)
标签:

转载

分类: 03SAS数据处理

[SAS] 使用OBS=指令取出部分数据

 

 

今日主题是SAS的「OBS=」以及「FIRSTOBS=」这两个指令。适用于什么场合呢?可以用在当研究者想要浏览数据中的一部分时。什么意思呢?请看今天的范例数据(如下)。现在有一个数据,内有10个观察值,分别有IDRainfallWindTemperature等四个变量。而这个数据我已经倒入到SAS环境,名称为Bean

 

 http://s6/mw690/001m7RqPty6F5wlJfKZ45&690使用OBS=指令取出部分数据" TITLE="[转载][SAS] 使用OBS=指令取出部分数据" />


问题一:我想取Bean数据的前两行数据看看

 

data demo1;

  set bean (obs=2);

run;

proc print;

run;

 

可以使用上面的程序,意思即我新建一个数据文件叫做demo1,从Bean数据文件,然后「obs=2」表示我取到第2行数据为止!因此取出来的demo1会是什么样子呢?

 

http://s2/mw690/001m7RqPty6F5wn1KcV01&690使用OBS=指令取出部分数据" TITLE="[转载][SAS] 使用OBS=指令取出部分数据" />

 

是不是刚好取到前两笔数据啊?可以对照到最上面的数据文件。

 

问题二:想取第5行到第10行资料来看,该怎么做?

 

data demo2;

  set bean (firstobs=5 obs=10);

run;

proc print;

run;

 

程序范例如上,这时候就要搭配「firstobs=」与「obs=」使用。如上面程序所述,新建一个数据文件叫demo2,从Bean数据文件,接着「firstobs=5」即从第5行数据开始抓,「obs=10」抓到第10行数据为止。请看以下output

 

http://s12/mw690/001m7RqPty6F5wor3tNab&690使用OBS=指令取出部分数据" TITLE="[转载][SAS] 使用OBS=指令取出部分数据" />

ID即可知数据的确从第5笔到第10笔完整呈现在output file中。那什么时候会使用到这样的语法呢?当手上有一笔庞大的数据时,我可能使用一些复杂的指令比方说if then elsedo loop等取数据后我想查一下新数据是否如同与我预期想要的完整呈现。这时候你当然可以鼠标点两下打开SAS放数据的资源管理器来浏览,也可以使用上述介绍的指令「firstobs=」与「obs=」搭配使用!

 

数据小的时候恐怕很难体会这指令的好处,但当你有机会处理大数据,动辄几千万笔数据的时候,等你点两下打开数据来看都不晓得要花多少时间,或许还可以泡杯咖啡聊个天。使用短短几行指令取中段或是后段数据来看不也是一个好选择吗?

 

 

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有