由买买提看人间百态

topics

全部话题 - 话题: seriesno
(共0页)
J*y
发帖数: 271
1
来自主题: Statistics版 - sas 编程 - data manipulation
我有一组数据:
Date SeriesNO TypeA TypeB TypeC
1/12/2011 1 50 30 .
1/12/2011 2 . 60
1/14/2011 3 10 2 7
需要用sas程序转换成如下:
Date SeriesNO TYPE AMOUNT
1/12/2011 1 A 50
1/12/2011 1 B 30
1/12/2011 2 B 60
1/14/2011 3 A 10
1/14/2011 3 B 2
1/14/2011 3 C 7
求sas大牛帮助。
谢谢。
d******9
发帖数: 404
2
来自主题: Statistics版 - sas 编程 - data manipulation
这个是 rotate 吧,比 transpose 容易多了,可以不用 Proc Transpose, 只需要
data step 就行。
Data B;
Set A;
By date seriesNo;
Array Z (3) _temporary_ ("A","B","C");
Array T(3) TypeA TypeB TypeC;
If first seriesNo then do I=1 to dim(T);
Type=Z(I);
Amount=T(I);
if Amount=. then delete;
output;
end;
run;
G*********n
发帖数: 569
c*******o
发帖数: 3829
4
来自主题: Statistics版 - sas 编程 - data manipulation
proc transpose data=youdata out=two(rename=(_Name_=Type col1=Amount));
by Date SeriesNO;
run;
data three;
set two;
where Amount ne .;
Type=substr(Type,5);
run;
y****n
发帖数: 46
5
来自主题: Statistics版 - sas 编程 - data manipulation
data want;
array xx(3) TypeA TypeB TypeC;
set have;
length TYPE $1;
by date SeriesNO notsorted;
do i=1 to 3;
TYPE=substr(vname(xx(i)),5);
AMOUNT=xx(i);
if AMOUNT ne . then output;
end;
drop TypeA TypeB TypeC i;
run;
(共0页)