全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
10010 20
2014-03-21
数据格式如下(外部excel文件,已建立sas数据集)
程序


proc phreg data=miRNAfirst;model time * vital_status(1)=ebv-miR-BART10;/*第五列变量*/
proc phreg data=miRNAfirst;model time * vital_status(1)=ebv-miR-BART10*;/*第六列变量*/
proc phreg data=miRNAfirst;model time * vital_status(1)=ebv-miR-BART11-3p;/*第七列变量*/
......
......proc phreg data=miRNAfirst;model time * vital_status(1)=ebv-miR-BART11-3p;/*第n列变量*/
请问怎么实现该过程的循环?以为黄色字体有上万个变量,手动添加太麻烦。
请大神们出谋划策,不胜感激!!!
另外,我的原始数据有800多列,为什么导入到sas只有250列呢?



二维码

扫码加我 拉你入群

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

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

全部回复
2014-3-21 22:48:04
你这是什么数据?如果是外部数据导入的话,proc import datafile=“...”;getnames=yes;
自动就把第一行导入作为变量名了啊
二维码

扫码加我 拉你入群

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

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

2014-3-22 09:54:06
%let data1=miRNAfirst;

proc sql;
select name into :varnames separated by ' ' from DICTIONARY.COLUMNS
where libname = upcase("WORK")and memname = upcase("&DATA1");
%put &varnames;
quit;
                  
%macro calc/parmbuff;
   %let num=1;
   %let varname=%scan(&syspbuff,&num);
   %do %while(&varname ne);

   proc phreg data=&DATA1;
   model time * vital_status(1)=&varname;
   run;
   
      %let num=%eval(&num+1);
      %let varname=%scan(&syspbuff,&num);
   %end;
%mend calc;

%calc(&varnames)
二维码

扫码加我 拉你入群

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

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

2014-3-22 10:01:06
1.循环计算使用了SAS数据字典的技术。关于该技术,在下面这个帖子有简单说明:
SAS魔法师的字典表格
https://bbs.pinggu.org/forum.php? ... 50&from^^uid=4727
2.SAS导入EXECL类文件时,做多就是255列数据,这是ACE、Jet引擎的设计上限。Excel2003及更早期版本(.xls)的最大存储列数就是256列。推测前者在设计时,可能受到了后者的影响。
二维码

扫码加我 拉你入群

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

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

2014-3-22 10:20:03
davil2000 发表于 2014-3-22 10:01
1.循环计算使用了SAS数据字典的技术。关于该技术,在下面这个帖子有简单说明:
SAS魔法师的字典表格
http ...
您好,非常感谢您的帮助,我把你的代码输入到SAS程序中,提示有以下错误,能再帮我看看吗?
QQ图片20140322101828.jpg

二维码

扫码加我 拉你入群

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

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

2014-3-22 10:23:15
请贴上完整的日志内容
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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