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 :varlist separated by ' ' from varsinfo where substr(name,1,1)='a' order by varnum;
quit;
%put &varlist;
data temp(keep=value varname);
set raw;
array arytmp(*) &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
用数据集做为数据的存储与传递载体不就可以吗?
不一定要强求赋给某个变量或者"数组"啊
作者:
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