全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1775 0
2016-07-29
在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并附上您的建议。
以后还会写更多的小代码~
附件列表
Capture.PNG

原图尺寸 53.74 KB

Capture.PNG

Capture.PNG

原图尺寸 46.34 KB

Capture.PNG

二维码

扫码加我 拉你入群

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

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

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

分享

扫码加好友,拉您进群