在SAS 中用Cluster 過程分類的時(shí)候經(jīng)常會(huì)出現(xiàn)這樣的情況,比如有460個(gè)元素需要分類,但是在用完Cluster之后分類出來的表是這樣的
省略一大串表之后。。。。。。。
并且不顯示譜系圖,因?yàn)榉诸愄嗔俗V系圖畫不開,SAS就自動(dòng)默認(rèn)不畫了。但是如果想知道這里面每一類里面都有什么元素要怎么辦呢?比如CL10里面都有什么,一個(gè)一個(gè)數(shù)太麻煩了。所以我寫了一個(gè)小程序幫助大家解決這個(gè)問題。
這是一個(gè)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#
}
紅字部分設(shè)置成自己文件的地址即可。
在運(yùn)行這個(gè)程序前,需要復(fù)制粘貼SAS 出來的結(jié)果,就是那個(gè)表的前兩列,復(fù)制到EXCEL表格A,B列里。當(dāng)然多復(fù)制也是沒有問題的。注意:不能包含中文。。。
在RStudio里面運(yùn)行Run以上代碼。然后比如你想知道CL10類里面都有什么就輸入
cl(10)
然后結(jié)果就會(huì)出來了,包括里面的元素,和元素的總數(shù)。但是此代碼弊端就是每一個(gè)元素上面都會(huì)顯示V1或者V2,這些東西都不用管,只是列名稱,時(shí)間著急沒有做的很精致,有R玩家能幫我修改請(qǐng)樓下回帖,不勝感激。
至于想去掉這些V1,V2就復(fù)制粘貼結(jié)果到excel然后去掉雙引號(hào),替換掉V1,V2就可以了,具體方法就上度娘查excel的用法吧,都很簡(jiǎn)單,就不多說了。
覺得好用的請(qǐng)回復(fù)1,不好的請(qǐng)回復(fù)0并附上您的建議。
以后還會(huì)寫更多的小代碼~