全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1712 2
2015-06-05
求大神指点,将如下数据形式

namea b
x 2 4
x 3 2
x 4 4
y 5 1
y 6 2
y 7 1
转成如下形式:
name_name_ col1col2 col3
x a 2 3 4
xb 4 2 4
ya 5 6 7
y b 1 2 1
但是要用data步的方法,不用transpose来写~

谢谢!急
二维码

扫码加我 拉你入群

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

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

全部回复
2015-6-6 10:40:45
复制代码
hope this will help you well.
二维码

扫码加我 拉你入群

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

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

2015-6-6 13:50:53
何必不淡定。 发表于 2015-6-6 10:40
hope this will help you well.
这是内置的transpose的算法么?谢大哥!

我自己后来琢磨了下,用data也谢了出来,代码如下:
data quan1;
input name $ a b;
cards;
x 2 4
x 3 2
x 4 4
y 5 1
y 6 2
y 7 1
run;

data quan2(keep=name _name_ new_var);
set quan1;
array v a--b;
do over v;
_name_=vname(v);
new_var=v;
output;
end;
run;

proc sort data=quan2 out=quan3;
by _name_;
run;

data quan4;
array col[3] col1-col3;
do i=1 to 3;
set quan3;
col(i)=new_var;
end;
keep name _name_ col1-col3 ;
run;

但我现在想衍生一下,如果数据是这样:
name a b
   x    2 4
   x    3 2
   x    4 4
   x    1 2
   y    5 1
   y    6 2
   y    7 1
然后用data把他转置成:
name _name_ col1 col2 col3 col4
   x        a        2     3     4     1
   x        b        4     2     4     2
   y        a        5     6     7     .
   y        b        1     2     1     .

不知道该怎么写。。。求教!谢谢
二维码

扫码加我 拉你入群

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

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

栏目导航
热门文章
推荐文章

说点什么

分享

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