楼主: dxystata
4540 5

如何循环得到每行每个变量的值? [推广有奖]

版主

已卖:302份资源

大师

37%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
183395 个
通用积分
15333.1475
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
298627 点
帖子
5586
精华
1
在线时间
13632 小时
注册时间
2006-6-21
最后登录
2025-12-22

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

楼主
dxystata 发表于 2015-1-17 20:39:30 |AI写论文
20论坛币
  1. data aaa;
  2. input x $1. y z;
  3. cards;
  4. a 1 2
  5. d 3 4
  6. ;
  7. run;
复制代码
如何循环得到每行每个变量的值?
先根据行循环 再根据变量循环,得到变量值,希望通过macro实现?谢谢!

关键词:cards Macro Input Data card 如何

沙发
mingfeng07 学生认证  发表于 2015-1-17 23:31:53
不知道你循环得到的变量值想要如何保存的呢?是列于一个变量之下的数据集中吗?如果是这样,那字符变量值和数值变量值岂不是在同一列下了,这没办法做到啊。

藤椅
dxystata 发表于 2015-1-17 23:40:02
mingfeng07 发表于 2015-1-17 23:31
不知道你循环得到的变量值想要如何保存的呢?是列于一个变量之下的数据集中吗?如果是这样,那字符变量值和 ...
每次循环将其值放入宏变量中!

板凳
mingfeng07 学生认证  发表于 2015-1-18 01:42:09
dxystata 发表于 2015-1-17 23:40
每次循环将其值放入宏变量中!
  1. data a;
  2. input x $1. y z;
  3. cards;
  4. a 1 2
  5. d 3 4
  6. ;
  7. run;
  8. proc contents data=a out=b;run;
  9. %macro test;
  10. %let newvar=;
  11. proc sql;
  12. select count(name) into:count from b;
  13. select name into:var1-:var%left(&count) from b;
  14. %do i=1 %to &count;
  15. select &&var&i. into: newvar&i. separated by ' ' from a;
  16. %let newvar=&newvar &&newvar&i.;
  17. %end;
  18. quit;
  19. %put &newvar.;
  20. %mend;
  21. %test;
复制代码

报纸
dxystata 发表于 2015-1-18 17:32:35
先按循环行,然后在每一行取每个变量的值!

地板
sushe1527 发表于 2015-1-18 18:23:35
dxystata 发表于 2015-1-18 17:32
先按循环行,然后在每一行取每个变量的值!
你可以稍微转置一下在用
  1. proc transpose data=a out=c(drop=_name_) ;
  2. var x y z;
  3. run;
复制代码

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 14:21