SAS中文论坛
标题:
文本转公式?
[打印本页]
作者:
shiyiming
时间:
2013-2-20 03:24
标题:
文本转公式?
data _null_;
a="5+2";/*It's Char*/
b= /*how to let b=5+2,i.e.the resolved a*/;
put b;
run;
必须在一个data 步完成
谢谢~
作者:
shiyiming
时间:
2013-2-21 20:46
标题:
Re: 文本转公式?
Syntax没说清楚。再说SAS也没有什么简单办法。如果布什非要一步完成,不如在前面加个等号,导到Excel在导回来好啦。
RESOLVE(cats('%sysevalf(', a, ')')) would work for arithmetics with only constants.
作者:
shiyiming
时间:
2013-2-23 22:31
标题:
Re: 文本转公式?
要求:
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))";等
召唤大胖猫~在那之后,我都问过俩sas技术董事了~
作者:
shiyiming
时间:
2013-2-28 10:08
标题:
Re: 文本转公式?
SAS 不支持文本里带函数的表达式,除非你的自己用c/c++ 或者 java等写个程序来解析执行,让SAS调用。
作者:
shiyiming
时间:
2013-4-12 20:51
标题:
Re: 文本转公式?
这样行不行?其实还是用了两次data步。。。
data one;
m=5;n=2.1;r=5.312;
a="m+sum(n,r)";
call execute("data _null_; set one; b="||strip(a)||";put b= ;run;");
run;
欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/)
Powered by Discuz! X3.2