楼主: Y初学者Y
9073 20

请教SAS循环语句,感谢大神指点 [推广有奖]

  • 1关注
  • 0粉丝

初中生

76%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
359 点
帖子
16
精华
0
在线时间
15 小时
注册时间
2014-3-21
最后登录
2014-5-13

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据格式如下(外部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列呢?



二维码

扫码加我 拉你入群

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

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

关键词:循环语句 status sas数据集 phreg model excel 黄色

沙发
intheangel 学生认证  发表于 2014-3-21 22:48:04 |只看作者 |坛友微信交流群
你这是什么数据?如果是外部数据导入的话,proc import datafile=“...”;getnames=yes;
自动就把第一行导入作为变量名了啊
我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

使用道具

藤椅
davil2000 发表于 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)
R是万能的,SAS是不可战胜的!

使用道具

板凳
davil2000 发表于 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列。推测前者在设计时,可能受到了后者的影响。
R是万能的,SAS是不可战胜的!

使用道具

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

使用道具

地板
davil2000 发表于 2014-3-22 10:23:15 |只看作者 |坛友微信交流群
请贴上完整的日志内容
R是万能的,SAS是不可战胜的!

使用道具

7
Y初学者Y 发表于 2014-3-22 10:24:09 |只看作者 |坛友微信交流群
davil2000 发表于 2014-3-22 09:54
%let data1=miRNAfirst;

proc sql;

使用道具

8
davil2000 发表于 2014-3-22 10:27:44 |只看作者 |坛友微信交流群
Y初学者Y 发表于 2014-3-22 10:24
我实现一次程序的代码是
libname COXmiRNA 'F:\yang\COX\zhuanzhi\COXmiRNA';
PROC import out=COXmiRN ...
这是日志吗?
R是万能的,SAS是不可战胜的!

使用道具

9
Y初学者Y 发表于 2014-3-22 10:32:31 |只看作者 |坛友微信交流群
davil2000 发表于 2014-3-22 10:27
这是日志吗?
114  where libname = "COXmiRNA" and memname = "&DATA1";
NOTE: 没有选择任何行。
115  %put &varnames;
WARNING: 没有解析符号引用 VARNAMES。
&varnames
116  quit;
NOTE: “PROCEDURE SQL”所用时间(总处理时间):
      实际时间          0.01 秒
      CPU 时间          0.01 秒


117
118  %macro calc/parmbuff;
119     %let num=1;
120     %let varnames=%scan(&syspbuff,&num);
121     %do %while(&varnames ne);
122
123     proc phreg data=&DATA1;
124     model time * vital_status(1)=&varnames;
125     run;
126
127        %let num=%eval(&num+1);
128        %let varnames=%scan(&syspbuff,&num);
129     %end;
130  %mend calc;
131  %calc(&varnames)
WARNING: 没有解析符号引用 VARNAMES。
WARNING: 没有解析符号引用 VARNAMES。


ERROR: Variable varnames is not found in the input data set and cannot be generated from the programming statements.
NOTE: 由于出错,SAS 系统停止处理该步。
NOTE: “PROCEDURE PHREG”所用时间(总处理时间):
      实际时间          0.03 秒
      CPU 时间          0.01 秒


使用道具

10
davil2000 发表于 2014-3-22 10:34:26 |只看作者 |坛友微信交流群
114  where libname = "COXmiRNA"

谁让您改这个了?
R是万能的,SAS是不可战胜的!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 13:44