全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1943 5
2018-08-18
数据形式如下:
编号    地区   名称   情况1  情况2 情况3
1           北京  a          Z1        A1       S1
2           北京 a          B1        Z1        S1
3           北京 a           S1        Z1      
4           北京 b          C1        A1
5           北京 b          A1
6           上海 a         S1       Z
Xxx
Xxx
想要求北京+a中Z1、S1等个出现的次数
求大神帮忙,谢谢
二维码

扫码加我 拉你入群

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

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

全部回复
2018-8-18 21:02:21
如果是Excel的数据形式,用coutifs可以解决该问题。
二维码

扫码加我 拉你入群

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

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

2018-8-18 21:43:27
数据量比较大,有SAS语句可以做的吗,谢谢
二维码

扫码加我 拉你入群

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

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

2018-8-18 22:47:37
请参见此贴
SAS分组求和问题
https://bbs.pinggu.org/thread-6572943-1-1.html
二维码

扫码加我 拉你入群

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

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

2018-8-19 10:04:33
楼主,是不是要求得到任意的城市、名称、情况的统计呢?
可以直接写一个macro,然后调用即可,本人用北京、a,然后以情况1为需要统计的column(当然可以选择其他的情况2、3,仅仅在调用的macro里面改个数字即可),假如需要其他数据,直接再调用几次macro,改一下参数即可,假如希望统计的结果在一个表上,那就merge一下即可。你看看下面的代码是不是你需要的?
data test;
input location $ type $ situ1 $ situ2 $ situ3 $;
datalines;
Beijing a z1 a1 s1
Beijing a z1 z1 s1
Beijing a s1 z1 a1
Beijing b c1 a1 b1
Beijing b a1 z1 b1
Shanghai a s1 z1 b1
;
run;
/*The following code is to calculate the number of z1 and s1 under the condition where location=Beijing and type=a*/
/*Adopt macro to facilitate programming*/
%macro cnt(n,var,loc=,tp=);
proc sql;
create table cnt&var as
select location,type,count(situ&n) as NumOf&var
from test
where location="&loc" and type="&tp" and situ&n="&var"
group by location,type,situ&n;
quit;
%mend;
/*Call macro cnt*/
%cnt(1,z1,loc=Beijing,tp=a) ;
%cnt(1,s1,loc=Beijing,tp=a) ;
/*Merge tables generated by macro cnt*/
data cb;
merge cnts1 cntz1;
run;
二维码

扫码加我 拉你入群

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

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

2018-8-19 10:13:44
steven_1017 发表于 2018-8-19 10:04
楼主,是不是要求得到任意的城市、名称、情况的统计呢?
可以直接写一个macro,然后调用即可,本人用北京、 ...
上面程序里面的input语句,几个变量拷贝过来,后面$符号没有了,自己加一下吧。
input location $ type $ situ1 $ situ2 $ situ3 $;
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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