SAS中文论坛
标题:
Data步循环宏变量的赋值
[打印本页]
作者:
shiyiming
时间:
2010-2-21 18:07
标题:
Data步循环宏变量的赋值
%do q = 1 %to &n;
PROC FSEDIT DATA=dedata.p&&dsn&q mod
SCREEN=GLSCN.descn.p&&dsn&q...SCREEN;
RUN;
%end;
我今天突然想用do loop来代替%do,后来发现宏变量赋值应该最简单有效。
但是后来又发现,这个东西在宏变量做文件名的时候根本不管事儿。
后来想起了%sysfunc,但是发现根本不支持put函数。。。
有什么简单有效的建议么?
谢谢!
作者:
shiyiming
时间:
2010-2-21 21:37
标题:
Re: Data步循环宏变量的赋值
一不小心,好像又问到了一个不太好办的问题。。。。我是没什么办法了。。。
作者:
shiyiming
时间:
2010-2-22 01:20
标题:
Re: Data步循环宏变量的赋值
I don't think I fully understand your needs but in order for %sysfunc() to work with put() data step function, you may try %sysfunc(put[color=#008000:2bnpq4u0]n[/color:2bnpq4u0](<...>, <...>)) or %sysfunc(put[color=#BF0000:2bnpq4u0]c[/color:2bnpq4u0](<...>, <...>)) depending on whether your operator is [color=#008000:2bnpq4u0]numeric[/color:2bnpq4u0] or [color=#BF0000:2bnpq4u0]character[/color:2bnpq4u0]. <!-- s:-) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":-)" title="Smile" /><!-- s:-) -->
作者:
shiyiming
时间:
2010-2-22 11:19
标题:
Re: Data步循环宏变量的赋值
Thank you so~ much!
I've tried....
but still don't work when creating the varable names....
作者:
shiyiming
时间:
2010-2-22 13:51
标题:
Re: Data步循环宏变量的赋值
我也没看懂你要用PUT做什么。最好简化你的问题描述!!!!!不过PUTN PUTC的确很可能是你需要的东西。
作者:
shiyiming
时间:
2010-2-22 15:58
标题:
Re: Data步循环宏变量的赋值
我想用data步do loop,把%do去掉就行。
但是又需要变量名能够方便定位。 <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
作者:
shiyiming
时间:
2010-2-22 16:49
标题:
Re: Data步循环宏变量的赋值
还是没懂,因为你现在的描述还是偏向于“你想怎么做”,而不是你要“做什么”。
比如你可以描述。你想生成多个PROC XXX的语句,其中XX参数要如何如何变化。
作者:
shiyiming
时间:
2010-2-22 18:35
标题:
Re: Data步循环宏变量的赋值
....
我要用data步do loop代替%do,在不影响变量名命名的前提下。
比如说
[code:1ipyse0j]%macro a;
data a;
%do i=1 %to 10;
x&i=&i;
%end;
run;
%mend a;
%a;[/code:1ipyse0j]
我不想用%do,或者说,有什么方便的函数支持直接返回变量值作为宏变量复制方法的么?
作者:
shiyiming
时间:
2010-2-23 02:20
标题:
Re: Data步循环宏变量的赋值
maybe you can try CALL EXECUTE();
作者:
shiyiming
时间:
2010-2-23 13:58
标题:
Re: Data步循环宏变量的赋值
to oloolo
Thank you. <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
作者:
shiyiming
时间:
2010-2-23 17:12
标题:
Re: Data步循环宏变量的赋值
还有就是,不用%do的话
array(n)=lag&n.(x)
这个怎么解决
作者:
shiyiming
时间:
2010-2-24 09:37
标题:
Re: Data步循环宏变量的赋值
不知道LZ说的是这个意思么?
[code:3phq2eun]%let n=10;
data a;
array x(&n);
do i=1 to &n;
x(i)=i;
end;
run;
[/code:3phq2eun]
对于lag&n.(x),以前想了好几个方法,都没搞定... <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( -->
作者:
shiyiming
时间:
2010-2-24 11:04
标题:
Re: Data步循环宏变量的赋值
LOGn(x)=ln(x)/ln(n)...........SAS STATEMENT log(x)/log(n)
作者:
shiyiming
时间:
2010-2-24 12:44
标题:
Re: Data步循环宏变量的赋值
to ahuige
<!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
作者:
shiyiming
时间:
2010-3-2 16:12
标题:
Re: Data步循环宏变量的赋值
to superkuhasu
array + mod(_n_, &cycle)
作者:
shiyiming
时间:
2010-3-3 12:36
标题:
Re: Data步循环宏变量的赋值
to oloolo
Details for &cycle? <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
作者:
shiyiming
时间:
2010-3-9 14:53
标题:
Re: Data步循环宏变量的赋值
to superkuhasu
自己动脑筋
欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/)
Powered by Discuz! X3.2