全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7999 8
2007-03-19

前边问过这个问题,

有人告诉我用proc transpase;但是后来我发现只是输出时转了置,数据集实际并没变,这不是我要的结果.

那位能再帮帮我.

另外,能否定义一个二维数组,先把数据集中的数据放在数组中,转置以后,再把二维数组中的数据,放在一个新数据集中?

二维码

扫码加我 拉你入群

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

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

全部回复
2007-3-19 16:23:00

还是应该用proc transpase,你说数据集没有变是因为你没有定义输出.给你个例子

data a;
input a b c ;
datalines;
1 2 3
4 5 6
;
proc print;
run;
proc transpose out=b;
run;
proc print;
run;

转前数据集a输出是:

obs a b c

1 1 2 3

2 3 4 5

转后数据集b输出是:

obs -name- col1 col2

1 a 1 4

2 b 2 5

3 c 3 6

二维码

扫码加我 拉你入群

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

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

2007-3-19 17:04:00

谢谢了.成了.另外再请教一下,怎么把col1-col33(好比项很多)改为x1-x33呢?

用rename col1-col33 x1-x33; 好象不行.

二维码

扫码加我 拉你入群

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

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

2007-3-20 08:55:00

应该可以这样写:

data temp;

set dataset_name;

rename col1-col33=x1-x33;

run;

还有的办法就是使用宏循环,稍微复杂点,不过上面已经有简单的办法解决

二维码

扫码加我 拉你入群

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

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

2007-3-20 09:54:00

请教sumc,如果将a,b,c,d,...,z重命名为x_a,x_b,x_c,x_d,...,x_z,如何实现?SAS不支持下述语法:

data temp;

set dataset_name;

rename a--z=x_a--x_z;

run;

我曾经用宏语言编写,旦无法运行:

%macro rename(startvar,endvar,pre);

data new;

set old;

array oldvar(*) &startvar--&endvar;

array newvar(*) &pre&startvar--&pre&endvar;/*SAS无法定义新变量*/

%do i=1 %to dim(oldvar);

rename oldvar(i)=newvar(i);

%end;

run;

%mend rename;

%rename(x1,zn,new_)

谢谢

二维码

扫码加我 拉你入群

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

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

2007-3-20 16:30:00

不好意思,这个问题能力有限.没办法解决.

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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