楼主: 啊啊啊啊93
1506 0

[程序分享] 解决SAS Cluster过程因为分类数过多不显示谱系图,从而不能一眼看到哪类里有什么元素 [推广有奖]

  • 0关注
  • 0粉丝

高中生

55%

还不是VIP/贵宾

-

威望
0
论坛币
28 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
299 点
帖子
19
精华
0
在线时间
30 小时
注册时间
2016-1-27
最后登录
2022-2-6

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在SAS 中用Cluster 过程分类的时候经常会出现这样的情况,比如有460个元素需要分类,但是在用完Cluster之后分类出来的表是这样的
省略一大串表之后。。。。。。。

并且不显示谱系图,因为分类太多了谱系图画不开,SAS就自动默认不画了。但是如果想知道这里面每一类里面都有什么元素要怎么办呢?比如CL10里面都有什么,一个一个数太麻烦了。所以我写了一个小程序帮助大家解决这个问题。
这是一个R程序
data<-read.table("C:\\Users\\Eleanor......")
a<-as.matrix(data)
cl<-function(x,y){
  d<-numeric(0)
  m=2
  i=1
  n=0
  d[1]=x+1-y#x is the total elements number#
  while(i<=length(d)){
    b<-str_extract_all(a[d,1],"[A-Z]+")
    c<-str_extract_all(a[d,2],"[A-Z]+")
    if(b=="CL"){
      d[m]<-x+1-as.numeric(str_extract_all(a[d,1],"[0-9]+"))
      m=m+1
      }else{
        print(a[d,1])
        n=n+1
        }
    if(c=="CL"){
      d[m]<-x+1-as.numeric(str_extract_all(a[d,2],"[0-9]+"))
      m=m+1
      }else{
        print(a[d,2])
        n=n+1
      }
    i=i+1
  }
  print(n)#n is the count of elements in CLy#
}

红字部分设置成自己文件的地址即可。
在运行这个程序前,需要复制粘贴SAS 出来的结果,就是那个表的前两列,复制到EXCEL表格A,B列里。当然多复制也是没有问题的。注意:不能包含中文!!!!
在RStudio里面运行Run以上代码。然后比如你想知道CL10类里面都有什么就输入
cl(10)
然后结果就会出来了,包括里面的元素,和元素的总数。但是此代码弊端就是每一个元素上面都会显示V1或者V2,这些东西都不用管,只是列名称,时间着急没有做的很精致,有R玩家能帮我修改请楼下回帖,不胜感激。
至于想去掉这些V1,V2就复制粘贴结果到excel然后去掉双引号,替换掉V1,V2就可以了,具体方法就上度娘查excel的用法吧,都很简单,就不多说了。
觉得好用的请回复1,不好的请回复0并附上您的建议。
以后还会写更多的小代码~
二维码

扫码加我 拉你入群

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

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

关键词:Cluster 不显示 CLU Data 麻烦了 SAS Cluster Programming

Capture.PNG (53.74 KB)

Capture.PNG

Capture.PNG (46.34 KB)

Capture.PNG

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 15:43