全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2272 6
2013-03-14
我有一组数据,变量为:stkcd fyear ROA ROE,stkcd fyear有重复值。现在需要将stkcd fyear相同的值只出现一次的,生成新变量m=1,stkcd和fyear相同的值出现两次的,生成新变量m=2,stkcd和fyear相同的值出现三次的,生成新变量m=3.应该如何编写程序?
原数据部分如下:
stkcd fyear ROA ROE
966001  1999 0.5   0.4
966002  1999 0.51 0.41
966002  1999 0.52 0.48
966002  1999 0.79 0.41
966003  1999 0.21 0.16
966003  1999 0.51 0.46
966004  2000 0.52 0.41
......
谢谢啦!
二维码

扫码加我 拉你入群

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

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

全部回复
2013-3-14 17:50:16

duplicates tag stkcd fyear,gen(n)
gen m=n+1
二维码

扫码加我 拉你入群

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

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

2013-3-14 17:56:17
jiangxinfeng 发表于 2013-3-14 17:50
duplicates tag stkcd fyear,gen(n)
gen m=n+1
这个是stata的命令。在sas中实行不了,我试了。
二维码

扫码加我 拉你入群

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

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

2013-3-14 18:20:29
下面的应该可以解决你的问题,你试下
data original;
input stkcd fyear ROA ROE ;
cards;
966001  1999 0.5   0.4
966002  1999 0.51 0.41
966002  1999 0.52 0.48
966002  1999 0.79 0.41
966003  1999 0.21 0.16
966003  1999 0.51 0.46
966004  2000 0.52 0.41
;
run;

proc sql noprint;
create table final as
select stkcd, fyear, n(fyear) as m
from original
group by stkcd, fyear ;
quit;

二维码

扫码加我 拉你入群

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

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

2013-3-15 10:29:47
sql挺方便的
二维码

扫码加我 拉你入群

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

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

2013-3-15 16:38:59
Eternal0601 发表于 2013-3-14 18:20
下面的应该可以解决你的问题,你试下
data original;
input stkcd fyear ROA ROE ;
谢谢!
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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