楼主: kuhasu
19462 100

[问答] SAS水平测试,动脑子一起看看吧,高手入   [推广有奖]

11
hamsik11 发表于 2013-2-20 19:27:30
kuhasu 发表于 2013-2-20 19:15
a="5+sum(2.1,5.312)"
没在data步里
这么做 是不是复杂了点?

。。。。。。




搞错了  不好意思

12
kuhasu 发表于 2013-2-20 19:53:25
Imasasor 发表于 2013-2-20 19:22
data a(drop=y);
a="5+sum(2.1,5.312)";
%global hello2;
不用一定在宏函数运算中求得值,事实上只要在b=进行数据步运算即可。
不过你那个代码如果sum变成了exp,或者其他什么公式,不还得自己重写代码?

13
kuhasu 发表于 2013-2-20 19:54:19
hamsik11 发表于 2013-2-20 19:27
这么做 是不是复杂了点?

。。。。。。
你要是真的只用let在data步内直接引用变量a的值,那可真是最简单的方法了,呵呵

14
Imasasor 发表于 2013-2-20 20:25:29
data a;
a="5+sum(2.1,5.312)";
call symput("num",_n_);
%macro mac;
data a;
set a;
if _n_=&num then do; b=&hello;
put b;
end;
run;
%mend;
call symput("hello",a);
call execute('%mac');
run;

可是,我这算两个data步了吧
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
webgu + 3 + 3 + 3 精彩帖子

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

15
fishdropstone 发表于 2013-2-20 20:56:27

16
webgu 发表于 2013-2-20 20:59:28
data 步里套宏。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

17
hamsik11 发表于 2013-2-20 21:35:42
kuhasu 发表于 2013-2-20 19:54
你要是真的只用let在data步内直接引用变量a的值,那可真是最简单的方法了,呵呵
问题就在sas对宏是先编译后执行上....

18
kuhasu 发表于 2013-2-20 21:39:56
webgu 发表于 2013-2-20 20:59
data 步里套宏。
试试看

19
Crsky7 发表于 2013-2-20 22:26:58
看看谁能解决

20
chaixiaoai1106 发表于 2013-2-21 02:14:06

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

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