楼主: wodematlab
2221 7

如何用数组转置 [推广有奖]

  • 6关注
  • 7粉丝

已卖:703份资源

教授

2%

还不是VIP/贵宾

-

威望
0
论坛币
1910 个
通用积分
14.0137
学术水平
12 点
热心指数
19 点
信用等级
10 点
经验
10670 点
帖子
1063
精华
0
在线时间
972 小时
注册时间
2008-4-19
最后登录
2024-7-11

楼主
wodematlab 发表于 2013-8-14 12:45:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
data a;
input a b $;
cards;
1 a
1 b
1 c
2 a
2 b
2 d
2 e
3 a
3 f
;
quit;

我想转置成
1  a b c
2 a b d e
3 a f
这样的格式,不知道怎么样data步实现?
二维码

扫码加我 拉你入群

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

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

关键词:如何用 cards data步 Input Data 如何

沙发
gyqznufe 发表于 2013-8-14 13:04:34
用excel复制,转置粘贴,即可。
知常容·容乃公·公乃王!
创新源于学、问、思、行、果!
言传身教,请用事实与数据说话!
舍而得之:福、禄、寿、喜、财

藤椅
wodematlab 发表于 2013-8-14 14:13:53
不是这么小的表,是一张很大的数据表!

板凳
HELLOVEN 发表于 2013-8-14 14:19:58
PROC FREQ DATA=A NOPRINT ORDER=FREQ;
TABLES A/MISSING OUT=F_A(KEEP=COUNT);
RUN;
DATA _NULL_;
IF _N_=1 THEN SET F_A;
CALL SYMPUTX('N',COUNT);
RUN;
%PUT &N;
PROC SORT DATA=A;
BY A;
DATA A;
SET A;
BY A;
ARRAY X(&N) $;
RETAIN X;
IF FIRST.A THEN DO;
N=0;
DO I=1 TO &N;
X(I)='';
END;
END;
N+1;
X(N)=B;
IF LAST.A THEN OUTPUT;
KEEP A X:;
RUN;
PROC PRINT;
RUN;

报纸
akakak123 发表于 2013-8-14 14:22:16
proc transpose data=a out=a1;                                                                                                         
    var b;                                                                                                                              
    by a;                                                                                                                              
run;

地板
wodematlab 发表于 2013-8-14 14:52:37
谢谢~~

7
wodematlab 发表于 2013-8-14 15:07:44
akakak123 发表于 2013-8-14 14:22
proc transpose data=a out=a1;                                                                        ...
非常感谢~~

8
bobguy 发表于 2013-8-15 10:49:54
The proc transpose is much efficient than a data step because one needs two data pass to have it transposed  in data step.

data a;
input a b $;
cards;
1 a
1 b
1 c
2 a
2 b
2 d
2 e
3 a
3 f
;

proc transpose data=a out=b prefix=x;
by a;
var b;
run;

proc print data=b;
run;

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-24 12:31