SAS中文论坛

标题: 如何把dataset中的某个变量变成array [打印本页]

作者: shiyiming    时间: 2010-9-9 16:35
标题: 如何把dataset中的某个变量变成array
有什么方法可以把dataset中的某个变量变成array么?
如果变量是by group的,可以把某个group的变量变成array么?


另外,如果我想在多个data步中用一个array,有什么方法可以共享array么,因为我发现上个data步声明的array到其他proc步或者data步就不能用了。


非常感谢各位大大!!!
作者: shiyiming    时间: 2010-9-10 09:01
标题: Re: 如何把dataset中的某个变量变成array
ARRAY语句本身是个DATA STEP语句,也就是说它只在data步和run步之间才能被识别。你的这种要求,就像要求树能自己站起来从北半球跑南半球。
作者: shiyiming    时间: 2010-9-10 17:08
标题: Re: 如何把dataset中的某个变量变成array
....... <!-- s:-? --><img src="{SMILIES_PATH}/icon_confused.gif" alt=":-?" title="Confused" /><!-- s:-? -->
那怎么办才能把一部分变量数据抽出来一组共享啊。。。
作者: shiyiming    时间: 2010-9-10 17:21
标题: Re: 如何把dataset中的某个变量变成array
[code:2yzrostx]data raw;
        array ary1(*) a1-a10;
        do i=1 to dim(ary1);
                ary1(i)=1;
        end;
        output;
        do i=1 to dim(ary1);
                ary1(i)=2;
        end;
        output;
        do i=1 to dim(ary1);
                ary1(i)=3;
        end;
        output;
run;

proc contents data=raw out=varsinfo noprint;
run;

proc sql noprint;
        select name into &#58;varlist separated by ' ' from varsinfo where substr(name,1,1)='a' order by varnum;
quit;

%put &amp;varlist;

data temp(keep=value varname);
        set raw;
        array arytmp(*) &amp;varlist;

        do i=1 to dim(arytmp);
                varname=vname(arytmp(i));
                value=arytmp(i);
                output;
        end;

run;
[/code:2yzrostx]
作者: shiyiming    时间: 2010-9-11 02:28
标题: Re: 如何把dataset中的某个变量变成array
太感谢了!

我查资料,发现proc fcmp
里有个READ_ARRAY ,和WRITE_ARRAY 函数
很方便,但是只能把所有的指定变量全都读取,或者全都写入赋值。
对于分组by group的,没有任何说明。

请问大大,还有没有什么方法,能够分组的取某个变量,计算后的数组,又可以赋值给变量指定区间的观测呢?group中的观测数不一定相同。

比如说数据如下:

group  x
1         2
1         3
1         5
1         7
1         9
1         7
2         1
2         9
2         8
3         6
3         2
3         3
3         5
3         7

比如说想把group1中的x抽出,计算后比如说整个group1的平均数,再赋值回x
作者: shiyiming    时间: 2010-9-12 23:39
标题: Re: 如何把dataset中的某个变量变成array
用数据集做为数据的存储与传递载体不就可以吗?
不一定要强求赋给某个变量或者&quot;数组&quot;啊
作者: shiyiming    时间: 2010-9-12 23:46
标题: Re: 如何把dataset中的某个变量变成array
sql  into by 放宏变量中。
可以满足lz折腾的想法。
作者: shiyiming    时间: 2010-9-13 13:05
标题: Re: 如何把dataset中的某个变量变成array
to sxlion
谢谢大大!
放在宏变量中后如何对其元素进行引用,计算呢?谢谢




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2