楼主: burnpark
1540 6

sas 编辑数据 [推广有奖]

  • 1关注
  • 2粉丝

已卖:1份资源

讲师

21%

还不是VIP/贵宾

-

威望
0
论坛币
2979 个
通用积分
6.6000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
4270 点
帖子
128
精华
0
在线时间
591 小时
注册时间
2009-3-17
最后登录
2024-10-13

楼主
burnpark 发表于 2009-10-20 14:18:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
A        B    C
2008   0    0
2008   1    1
2008   2    2
2008   3    3
2007   4    1
2007   5    2
2007   6    3
2007   7    4
2006   8    2
2006   10  3
2006   11  4
2006   12  5
2005   13  3
2005   14  4
2005         5
2005         6
2004         4
2004         5
2004         6
2004         7
2003         5
2003         6
2003         7
2003         8
2002         6
2002         7
2002         8
2002         9
2001         7
2001         8
2001         9
2001         10
2000         8
2000         9
2000         10
2000         11
1999         9
1999         10
1999         11
1999         12
1998         10
1998         11
1998         12
1998         13
1997         11
1997         12
1997         13
1997         14
...
请教高手,一共2万组数据,一直按照上面的规律,将B列的数据复制成C列的格式。
邮箱:burnpark@163.com
二维码

扫码加我 拉你入群

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

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

关键词:请教高手 Park Bur COM 数据 SAS

沙发
xiaosanmao 发表于 2009-10-20 16:24:54
C列和B列没有关系,C列只和A列有关系

data x;
input A  B ;
cards;
2008   0   
2008   1   
2008   2   
2008   3   
2007   4   
2007   5   
2007   6   
2007   7   
2006   8   
2006   10  
2006   11  
2006   12  
2005   13  
2005   14  
;run;

proc sort data=x out=x1 nodupkey;by a;run;
proc sort data=x1;by b;run;
data x1;set x1;id=_n_-1;drop b;run;
proc sql;create table x2 as select x.*, x1.id
from x,x1 where x.a=x1.a order by id,b;quit;
data final;set x2;by id;
retain c 0;c+1;if first.id then c=id;run;
proc sql;drop table x ,x1, x2;run;

藤椅
burnpark 发表于 2009-10-21 02:05:37
不好意思,没有好好说明问题,B列和C列的实际数据不是012345..只是为了看的方便,实际数据是没有规律的数字。我要将B列的数据按照上面举例的方式复制到C列。实在是不会,各位高手帮帮忙吧!

板凳
qzuxwj138 发表于 2009-10-21 11:02:20
c列的格式是什么??下了你的表!看不懂??

报纸
sushe1527 发表于 2009-10-21 11:53:38
data old;
input A  B ;
cards;
2008   323   
2008   134   
2008   24   
2008   34   
2007   45   
2007   57   
2007   655   
2007   78   
2006   86   
2006   1022  
2006   1111  
2006   122  
2005   1322
2005   144
2005   153
2005   16
;run;


data out;
do i = 1 to t;
  set old point=i nobs=t;
   if a~=. then do k=i to i+3;
         set old point=k;
         output;
   end;
end;
stop;
run;
data final;merge old out( rename=(b=C) keep=b) ;run;

地板
sushe1527 发表于 2009-10-21 13:24:04
qqqqqqqqqqq

7
burnpark 发表于 2009-10-22 19:35:18
谢谢,用sushe1527 的方法成功了

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

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