全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4974 10
2013-01-05
有如下的数据集

data have;
input ByFactors $ Flag;
datalines;
a 1
a 1
a 1
a 0
a 0
a 1
b 1
b 0
b 0
b 1
b 1
;
run;

现在我想计算分ByFactrors的Flag序列的重复次数,即得到如下的结果
a 1 3
a 1 3
a 1 3
a 0 2
a 0 2
a 1 1
b 1 1
b 0 0
b 0 0
b 1 1
b 1 1

不知道我说清楚没有。有没有一个简便的方法,一个数据步或SQL步可以完成的。我开始想过用IML,但是需要区分ByFactrors,所以不能直接用IML。请高手指教。

二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-5 13:56:51
proc sql;
create table have1 as
select a.*,b.count from have a
inner join
(select *,count(1) as count from have group by ByFactors,Flag) b
on a.ByFactors=b.ByFactors and a.flag=b.flag;
quit;
二维码

扫码加我 拉你入群

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

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

2013-1-5 14:13:20
ziyenano 发表于 2013-1-5 13:56
proc sql;
create table have1 as
select a.*,b.count from have a
多谢回复,但是结果不对

可能在from子句里内连结时用的on子句并不准确,因为ByFactors和Flag并不是原表格的主码,不能唯一确定一个观测

另外还有Flag也不一定就为1或0,可能有其他值,希望解决方法可以考虑这一点

多谢了!
二维码

扫码加我 拉你入群

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

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

2013-1-5 14:43:44
playmore 发表于 2013-1-5 14:13
多谢回复,但是结果不对

可能在from子句里内连结时用的on子句并不准确,因为ByFactors和Flag并不是原 ...
不是,是我理解错了,我以为是把汇总数据count加在后面
二维码

扫码加我 拉你入群

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

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

2013-1-5 14:53:50
这个结果是怎么得到的,不是很理解
b 0 0
b 0 0
b 1 1
b 1 1
二维码

扫码加我 拉你入群

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

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

2013-1-5 14:58:40
楼主的结果错了吧,结果应该是汇总的呀
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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