全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 学习笔记1.0
3777 3
2011-01-11
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-1-11 12:15:20
Hi,

I have never work experience on fetch http or ftp files into SAS using SAS sysytem, but Hope the following sample helpful to you,

filename foo URL
'http://www.sas.com:80/service/techsup/intro.html';
data _null_;
infile foo length=len;
input record $varying200. len;
put record $varying200. len;
if _n_=15 then stop;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-1-11 12:21:53
这是一个用SAS直接获取SAS抓网页数据代码,而我也是在别人的基础上进行修改的,其实就是多了一个数据清洗。

这个是原始代码:
filename etf url 'http://www.sse.com.cn/sseportal/webapp/datapresent/ETF50downlad?SEQ_ID=12889'  RECFM=v lrecl=1000;
data _tmp;
    file _webout;
    infile etf length=len;
    length content $32766. ;
    input content $varying32766. len;
run;

这个代码把所有信息读入到一个变量中,没有根据字段分开,也没有去掉头部、尾部的非数据信息。

于是根据实际的需求,将代码进行了优化,得到的是整理后的信息。
具体用的的数据步的指令有do until……end;
并且用一个a作为信号指标,对当时所处的状态进行记录,do until对状态进行判断,这样做到对数据的清洗整理,使获得我们真正需要的数据。


代码:
filename etf url 'http://www.sse.com.cn/sseportal/webapp/datapresent/ETF50downlad?SEQ_ID=12889'  RECFM=v lrecl=1000;         /*将网络数据保存到etf中*/
data _tmp;
    file _webout;
    infile etf length=len dlm='|';   /*分割符为 | */
   
do until (a=1);            /*a的原始值为缺失,当a被赋值1时,说明数据指针已经达到需要数据的头部*/
  input id $ ;
  if id="TAGTAG" THEN a=1;       /*当发现头部标志时赋值a为1*/
  end;

do until (a=2);
     input id $ name $ d e f g;
  if id ne "ENDEND" then output;
   else a=2; /*当发现尾部标志时赋值a为2*/
  end;
drop a;    /*丢弃信号变量a*/
run;

/*-------END----------*/
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-25 22:01:30
第十一行是不是有问题啊,程序运行的始终出错啊,十一行中的@'id="proName_' @'>' content :$50. 啥意思?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群