全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
12488 26
2011-11-07
求助各位大虾
我收集了一批数据,共5个变量,共1300条记录。每个变量的取值为1-150
现在我想找出,这5个变量组合中,出现的频率最高的是哪一种组合?
请问用sas应该怎么编程呢,谢谢
我试了一些proc freq,但是由于变量较多,记录数较多,变量的分类也太多(1-150),sas软件没法算出结果
应该怎么弄呢
二维码

扫码加我 拉你入群

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

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

全部回复
2011-11-7 21:45:19
我是初学者,这些还不清楚呢
二维码

扫码加我 拉你入群

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

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

2011-11-7 22:01:37
继续求教高手
二维码

扫码加我 拉你入群

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

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

2011-11-7 22:29:55
高手在哪里呢
二维码

扫码加我 拉你入群

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

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

2011-11-7 22:36:27
举个例子,你的原始数据集为your_data,其中有两个变量V1与V2。你想统计第一个变量V1中出现频率最高的数字,实现方法有很多,我想出来的方法是排序之后再用保留变量统计,完整程序如下:

data your_data;
  input v1 v2;
cards;
1 2
3 4
5 6
7 8
7 9
3 2
5 4
5 6
5 1
7 0
;

proc sort data=your_data(keep=v1) out=var1_data;
  by v1;
run;

data report_data;
  set var1_data;
  by v1;
  retain sum maxfreq;
  if _n_=1 then maxfreq=0;
  if first.v1 then sum=0;
  sum=sum+1;
  if last.v1 then do;
    if sum>maxfreq then maxfreq=sum;
  end;
  call symput('maxfreq',maxfreq);
run;

data result_report;
  set report_data;
  if sum=&maxfreq;
  keep v1 maxfreq;
run;

proc print data=result_report;
run;

---------------------------------------------------------------------

结果是:

                    Obs    v1    maxfreq
                      1      5       4


---------------------------------------------------------------------

在变量V1中,出现频率最高的数字为5,出现的次数为4次。

运行良好,不是么?

二维码

扫码加我 拉你入群

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

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

2011-11-7 22:53:34
谢谢指点啊!
不过我这里是想求出组合频率的次数,比如你的数据中,
1 2 的组合出现1次,则频数为1
3 4的组合出现1次,频数为1
5 6的组合出现1次,频数为1
不知道我有没有说清楚呢
另外,如果变量取值为字符型的,这个程序也适用吗
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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