作者yonny (悠逆)
看板Statistics
标题Re: [程式] SAS资料转置和加总
时间Sat Aug 29 21:50:03 2015
DATA test;
Input newid id type$ size$ value;
cards;
1 1 A S 10
2 1 A L 20
3 1 B S 30
4 1 B L 10
RUN;
/*在PROC TRANSPOSE 之前要给每个obs一个不重复的newID
如果资料档已经存在可以在data step下 newID+1 就可以了*/
DATA test_1 test_2;
SET test;
IF size="S" then output test_1;
ELSE IF size="L" then output test_2;
RUN;
PROC TRANSPOSE data=test_1 out=test_11;
VAR value;
COPY id type;
By newid;
RUN;
PROC TRANSPOSE data=test_2 out=test_21;
VAR value;
COPY id type;
By newid;
RUN;
DATA test_all;
Merge test_11(rename=(COL1=S)) test_21(rename=(COL1=L));
by ID;
Drop _NAME_ newID;
RUN;
PROC print data=test_all;
sum S L;
RUN;
※ 引述《hikaru1224 (WinMoney)》之铭言:
: [软体程式类别]:
: SAS
: [程式问题]:
: 资料已经整理好,但卡在资料的转置和加总
: 有使用transpose转置,但无法试出我想要的呈现方式
: [软体熟悉度]:
: 新手
: [问题叙述]:
: 我的资料格式如下
: id type size value
: 1 A S 10
: 1 A L 20
: 1 B S 30
: 1 B L 10
: 想要的呈现方式如下
: id type S L
: 1 A 10 20
: 1 B 30 10
: 40 30 (多一栏垂直加总)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.223.193.138
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Statistics/M.1440856205.A.8B7.html
1F:推 hikaru1224: 可以啦,非常感谢 08/30 11:28