全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
19184 100
2013-02-20
首先这个看起来基础,但是其实不基础。我问过俩SAS技术董事,都没完美搞定。

data _null_;
a="5+sum(2.1,5.312)";/*a是个字符型变量*/
b=  /*让b=5+sum(2.1,5.312),就是a的算式/结果,而不是字符*/;
put b;
run;

要求:
1、必须一个data步内完成;
2、计算完后,b的值得能返回到上面的原data步。
3、计算效率越高越好,最好相当于SAS内部函数调用或者%let宏函数赋值。

我进一步明确一下内容:
data _null_;
m=5;n=2.1;r=5.312;
a="m+sum(n,r)";/*a是个字符型变量*/
b=  /*让b=5+sum(2.1,5.312),就是a的算式/结果,而不是字符*/;
put b;
run;

除了a="m+sum(n,r)";还可能是a="m+sum(n,exp(r))";a="log(m+sum(n,r))";等

二维码

扫码加我 拉你入群

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

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

全部回复
2013-2-20 17:16:15
复制代码
没有达到kuhasu大神的要求,仅仅作为抛砖引玉。
二维码

扫码加我 拉你入群

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

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

2013-2-20 17:26:10
zhangzachary 发表于 2013-2-20 17:16
没有达到kuhasu大神的要求,仅仅作为抛砖引玉。
为啥不能
data _null_;
call execute("data _null_;b="||"5+sum(2.1,5.312)"||";put b=;run;");
run;
?
二维码

扫码加我 拉你入群

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

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

2013-2-20 17:28:03
hamsik11 发表于 2013-2-20 17:26
为啥不能
data _null_;
call execute("data _null_;b="||"5+sum(2.1,5.312)"||";put b=;run;");
b得返回原data步啊~这个b是在另一个data 步。呵呵
call execute是在data步run后运行
fcmp效率相当低,有个runmacro函数
include宏也是在run;后才执行
二维码

扫码加我 拉你入群

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

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

2013-2-20 17:53:23
学习下
二维码

扫码加我 拉你入群

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

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

2013-2-20 18:13:52
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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