全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
30552 9
2013-01-03
sas如何统计一个变量中的每个值出现了多少次,比如,我有一个数据集info, 其中一个变量是markettype,我想统计表中的markettype有几个取值,每个值出现几次?
除了proc freq可以用哪个程序?谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-3 21:52:15
sql~
二维码

扫码加我 拉你入群

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

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

2013-1-4 01:52:08
/* method 1 */
proc sql;
   select distinct(markettype) as mtype, count (markettype)
   from info
   group by mtype;
quit;

/* method 2: */
proc sort data=info out=info_1;
     by markettype;
run;

data info_2;
    set info_1;
        if first.markettype then count = 1;
           else count+1;
     if last.markettype then   output;
        by markettype;
run;
二维码

扫码加我 拉你入群

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

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

2013-1-4 10:21:20
yongyitian 发表于 2013-1-4 01:52
/* method 1 */
proc sql;
   select distinct(markettype) as mtype, count (markettype)
谢谢!我试了一下,用以下两个程序也可以得到正确的结果:
1)proc sql;
   select markettype, count (markettype)
   from info
   group by markettype;
quit;
2)proc sql;
   select distinct(markettype) as mtype, count (*)
   from info
   group by mtype;
quit;
请问,count(*)和count(markettype)有什么区别吗?还有,您的第一个程序中为什么加了“distinct”?在什么情况下要加?谢谢啦!
二维码

扫码加我 拉你入群

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

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

2013-1-4 10:40:58
lemonxinran 发表于 2013-1-4 10:21
谢谢!我试了一下,用以下两个程序也可以得到正确的结果:
1)proc sql;
   select markettype, count  ...
* 代表的是数据集中的所有变量。
例如:
proc sql;
select * from info;
quit;
结果为info数据集的全部内容。

distinct 是去除重复值函数。 “我想统计表中的markettype有几个取值”,其实你想要的是markettype中的非重复值,所以2楼的第一个程序里正好用到此函数。
二维码

扫码加我 拉你入群

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

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

2013-1-4 13:28:59
为什么没人用tabulate....
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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