Dm(M=D,md=‘e’,s=F,t=F,d=3)
M:数値行列,s:正規化,t:転置,d:小数桁
md:距離の種類(‘[c]anberra’,‘[e]uclidean’[def.],‘[max]imum’,‘[man]hattan’,‘[mi]nkowski’)
D=Ip('s4.txt') #簡単な例:4人の成績
## File: s4.txt / Class: data.frame / Rows: 4 / Columns: 3
##
## v1.English v2.Physics v3.Latin
## i1.Ana 9 14 18
## i2.Juan 17 7 11
## i3.Mary 15 13 14
## i4.Ken 5 18 8
Dm() #距離行列
## i1.Ana i2.Juan i3.Mary i4.Ken
## i1.Ana 0.000 12.728 7.280 11.489
## i2.Juan 12.728 0.000 7.000 16.553
## i3.Mary 7.280 7.000 0.000 12.689
## i4.Ken 11.489 16.553 12.689 0.000
D=USArrests[,-3]; Dt(D,10) #データ:USArrests (-col.3: UrbanPop)
## Class: data.frame / Rows: 50 / Columns: 3
##
## Murder Assault Rape
## Alabama 13.2 236 21.2
## Alaska 10.0 263 44.5
## Arizona 8.1 294 31.0
## Arkansas 8.8 190 19.5
## California 9.0 276 40.6
## Colorado 7.9 204 38.7
## Connecticut 3.3 110 11.1
## Delaware 5.9 238 15.8
## Florida 15.4 335 31.9
## Georgia 17.4 211 25.8
D1=Dm(d=1); Dt(D1,6,6) #距離行列 (d:小数桁=1)
## Class: matrix, array / Rows: 50 / Columns: 50
##
## Alabama Alaska Arizona Arkansas California Colorado
## Alabama 0.0 35.8 59.0 46.2 44.7 36.9
## Alaska 35.8 0.0 33.9 77.2 13.6 59.3
## Arizona 59.0 33.9 0.0 104.6 20.4 90.3
## Arkansas 46.2 77.2 104.6 0.0 88.6 23.8
## California 44.7 13.6 20.4 88.6 0.0 72.0
## Colorado 36.9 59.3 90.3 23.8 72.0 0.0
D2=Dm(s=T, d=3); Dt(D2,6,6) #同 +(s:正規化(列)=T, d:小数桁=3)
## Class: matrix, array / Rows: 50 / Columns: 50
##
## Alabama Alaska Arizona Arkansas California Colorado
## Alabama 0.000 2.641 1.735 1.177 2.358 2.285
## Alaska 2.641 0.000 1.567 2.851 0.506 1.068
## Arizona 1.735 1.567 0.000 1.776 1.078 1.372
## Arkansas 1.177 2.851 1.776 0.000 2.503 2.088
## California 2.358 0.506 1.078 2.503 0.000 0.932
## Colorado 2.285 1.068 1.372 2.088 0.932 0.000
##クラスター樹形図 gClusterDd(M=D,md=‘e’,mc=‘w’,s=F,t=F,g=0,lx=’‘,ly=’‘,v=F,f=12,m=10,w=F)
M:数値行列,s:正規化(列),t:転置,g:グループ数,lx,ly:ラベル,v:X軸縦,f:文字サイズ,m:マージン幅,w:白黒
md:距離計測法(’[c]anberra’,‘[e]uclidean’,‘[max]imum’,‘[man]hattan’,‘[mi]nkowski’)
mc:クラスタリング方法(‘[a]verage’,‘[s]ingle’,‘[c]omplete’,‘[w]ard.D2’)
D=Ip('s4.txt') #簡単な例:4人の成績
## File: s4.txt / Class: data.frame / Rows: 4 / Columns: 3
##
## v1.English v2.Physics v3.Latin
## i1.Ana 9 14 18
## i2.Juan 17 7 11
## i3.Mary 15 13 14
## i4.Ken 5 18 8
Dt(Dm(),5,5) #距離行列
## Class: matrix, array / Rows: 4 / Columns: 4
##
## i1.Ana i2.Juan i3.Mary i4.Ken
## i1.Ana 0.000 12.728 7.280 11.489
## i2.Juan 12.728 0.000 7.000 16.553
## i3.Mary 7.280 7.000 0.000 12.689
## i4.Ken 11.489 16.553 12.689 0.000
gClusterDd() #クラスター樹形図
gClusterDd(g=2) #g:グループ数=2
gClusterDd(g=2,lx='Persona',ly='Distancia') #lx,ly:ラベル
gClusterDd(g=2,lx='Persona',ly='Distancia',m=5) #m:マージン=5
D=USArrests[,-3]; Dt(D,10) #データ:USArrests (-col.3: UrbanPop)
## Class: data.frame / Rows: 50 / Columns: 3
##
## Murder Assault Rape
## Alabama 13.2 236 21.2
## Alaska 10.0 263 44.5
## Arizona 8.1 294 31.0
## Arkansas 8.8 190 19.5
## California 9.0 276 40.6
## Colorado 7.9 204 38.7
## Connecticut 3.3 110 11.1
## Delaware 5.9 238 15.8
## Florida 15.4 335 31.9
## Georgia 17.4 211 25.8
NS(D,2) #データを正規化(2:列/std) 表示
## Murder Assault Rape
## Alabama 3.0614129 2.8606035 2.2863928
## Alaska 2.3192522 3.1878759 4.7992679
## Arizona 1.8785943 3.5636331 3.3433102
## Arkansas 2.0409419 2.3030282 2.1030500
## California 2.0873269 3.3454515 4.3786579
## Colorado 1.8322092 2.4727250 4.1737453
## Connecticut 0.7653532 1.3333321 1.1971207
## Delaware 1.3683588 2.8848459 1.7040097
## Florida 3.5716483 4.0606024 3.4403740
## Georgia 4.0354988 2.5575734 2.7824969
## Hawaii 1.2292036 0.5575752 2.1785441
## Idaho 0.6030056 1.4545441 1.5314518
## Illinois 2.4120223 3.0181791 2.5883692
## Indiana 1.6698616 1.3696957 2.2648230
## Iowa 0.5102355 0.6787873 1.2186905
## Kansas 1.3915513 1.3939381 1.9412769
## Kentucky 2.2496746 1.3212109 1.7579341
## Louisiana 3.5716483 3.0181791 2.3942415
## Maine 0.4870430 1.0060597 0.8412200
## Maryland 2.6207549 3.6363603 2.9981943
## Massachusetts 1.0204710 1.8060590 1.7579341
## Michigan 2.8062951 3.0909063 3.7854899
## Minnesota 0.6261981 0.8727265 1.6069459
## Mississippi 3.7339960 3.1393911 1.8442130
## Missouri 2.0873269 2.1575738 3.0413338
## Montana 1.3915513 1.3212109 1.7687189
## Nebraska 0.9972784 1.2363625 1.7795038
## Nevada 2.8294876 3.0545427 4.9610409
## New Hampshire 0.4870430 0.6909085 1.0245628
## New Jersey 1.7162466 1.9272710 2.0275559
## New Mexico 2.6439475 3.4545423 3.4619438
## New York 2.5743699 3.0787851 2.8148515
## North Carolina 3.0150278 4.0848448 1.7363643
## North Dakota 0.1855402 0.5454540 0.7872956
## Ohio 1.6930541 1.4545441 2.3079625
## Oklahoma 1.5307064 1.8303014 2.1569743
## Oregon 1.1364336 1.9272710 3.1599674
## Pennsylvania 1.4611289 1.2848473 1.6069459
## Rhode Island 0.7885457 2.1090890 0.8951443
## South Carolina 3.3397231 3.3818151 2.4265961
## South Dakota 0.8813158 1.0424233 1.3804636
## Tennessee 3.0614129 2.2787858 2.9011305
## Texas 2.9454502 2.4363614 2.7501423
## Utah 0.7421607 1.4545441 2.4697356
## Vermont 0.5102355 0.5818177 1.2079056
## Virginia 1.9713643 1.8909074 2.2324684
## Washington 0.9277009 1.7575742 2.8256364
## West Virginia 1.3219737 0.9818173 1.0029931
## Wisconsin 0.6030056 0.6424237 1.1647661
## Wyoming 1.5770915 1.9515134 1.6824400
Dx=Dm(s=T,d=3); Dt(Dx,6,6) #距離行列(s:正規化=T,d:小数桁=3)
## Class: matrix, array / Rows: 50 / Columns: 50
##
## Alabama Alaska Arizona Arkansas California Colorado
## Alabama 0.000 2.641 1.735 1.177 2.358 2.285
## Alaska 2.641 0.000 1.567 2.851 0.506 1.068
## Arizona 1.735 1.567 0.000 1.776 1.078 1.372
## Arkansas 1.177 2.851 1.776 0.000 2.503 2.088
## California 2.358 0.506 1.078 2.503 0.000 0.932
## Colorado 2.285 1.068 1.372 2.088 0.932 0.000
gClusterDd(s=T,lx='States',ly='Distance') #s:正規化=T,lx,ly:ラベル
gClusterDd(s=T,lx='States',ly='Distance',f=8) #+f:文字サイズ=8
gClusterDd(s=T,lx='States',ly='Distance',f=8,m=5) #+m:マージン=5
gClusterDd(s=T,lx='States',ly='Distance',f=8,m=5,v=T) #+v:縦X軸=T
gClusterDd(s=T,lx='States',ly='Distance',f=8,m=5,v=T,w=T) #+w:白黒=T
gClusterDd(s=T,lx='States',ly='Distance',f=8,m=5,g=3) #g:グループ=3
gClusterDd(s=T,lx='States',ly='Distance',f=8,m=5,md='c',g=3) #md:距離計測法=[c]anberra
gClusterDd(s=T,lx='States',ly='Distance',f=8,m=5,md='e',g=3) #md:距離計測法=[e]uclidean(defaut
gClusterDd(s=T,lx='States',ly='Distance',f=8,m=5,md='max',g=3) #md:距離計測法=[max]imum)
gClusterDd(s=T,lx='States',ly='Distance',f=8,m=5,md='man',g=3) #md:距離計測法=[man]hattan
gClusterDd(s=T,lx='States',ly='Distance',f=8,m=5,md='min',g=3) #md:距離計測法=[mi]nkowski
gClusterDd(s=T,lx='States',ly='Distance',f=8,m=5,mc='a',g=3) #mc:クラスタリング方法=[a]verage
gClusterDd(s=T,lx='States',ly='Distance',f=8,m=5,mc='s',g=3) #mc:クラスタリング方法=[s]ingle
gClusterDd(s=T,lx='States',ly='Distance',f=8,m=5,mc='c',g=3) #mc:クラスタリング方法=[c]omplete
gClusterDd(s=T,lx='States',ly='Distance',f=8,m=5,mc='w',g=3) #mc:クラスタリング方法=[w]ard.D2*(defaut)
D=Ip('santander') #データ:santander.txt
## File: santander.txt / Class: data.frame / Rows: 3962 / Columns: 4
##
## Forma Sexo Edad Nivel
## 1 eh H E1 N1
## 2 eh H E1 N1
## 3 eh H E1 N1
## 4 eh H E1 N1
## 5 eh H E1 N1
## 6 eh H E1 N1
## 7 eh H E1 N1
## 8 eh H E1 N1
## 9 eh H E1 N1
## 10 eh H E1 N1
D=L2M(); Dt() ##文字行列=>数値行列
## Class: matrix, array / Rows: 31 / Columns: 8
##
## H M E1 E2 E3 N1 N2 N3
## ah 24 51 16 13 46 21 40 14
## ay 8 40 4 1 43 7 32 9
## bueno 488 461 280 347 322 362 253 334
## claramente 13 0 0 10 3 11 1 1
## claro 118 218 54 98 184 128 90 118
## directamente 12 8 10 9 1 13 6 1
## efectivamente 11 19 0 7 23 1 6 23
## eh 828 317 329 456 360 505 290 350
## exactamente 39 7 0 26 20 17 7 22
## generalmente 18 7 4 14 7 0 14 11
D=round(RS()*100,0); Dt(); gChart() #行を相対化(パーセント)
## Class: matrix, array / Rows: 31 / Columns: 8
##
## H M E1 E2 E3 N1 N2 N3
## ah 11 23 7 6 20 9 18 6
## ay 6 28 3 1 30 5 22 6
## bueno 17 16 10 12 11 13 9 12
## claramente 33 0 0 26 8 28 3 3
## claro 12 22 5 10 18 13 9 12
## directamente 20 13 17 15 2 22 10 2
## efectivamente 12 21 0 8 26 1 7 26
## eh 24 9 10 13 10 15 8 10
## exactamente 28 5 0 19 14 12 5 16
## generalmente 24 9 5 19 9 0 19 15
Dt(Dm(),6,6) #距離行列
## Class: matrix, array / Rows: 31 / Columns: 31
##
## ah ay bueno claramente claro directamente
## ah 0.000 14.933 18.547 46.915 12.610 30.578
## ay 14.933 0.000 32.634 59.414 23.875 45.233
## bueno 18.547 32.634 0.000 34.044 11.790 18.412
## claramente 46.915 59.414 34.044 0.000 40.596 29.496
## claro 12.610 23.875 11.790 40.596 0.000 27.423
## directamente 30.578 45.233 18.412 29.496 27.423 0.000
gClusterDd() #クラスター樹形図
gClusterDd(g=3) #g:グループ数=2
gHeatDd(M=D,md=‘e’,mc=‘w’,d=F,r=4,c=4,s=F,gr=2,gc=2,lx=’‘,ly=’‘,l=F,v=F,f=12,k=F,t=F,w=F,dn=0)
M:数値行列=D,md(),mc(),d:対角化,r:樹形図の高さ(行)(0:なし),c:樹形図の高さ(行)(0:なし)
s:正規化(列),gr:行グループ数=2,gc:列グループ数=2
lx,ly:ラベル,l:凡例表示,v;縦X軸ラベル,f:フォントサイズ,k:数値表示,t:行列転置,w:白黒,dn:小数桁
md():距離計測方法(’[c]anberra’,’[e]uclidean’,’[max]imum’,’[man]hattan’,’[mi]nkowski’)
mc():クラスタリング方法(’[a]verage’,‘[s]ingle’,‘[c]omplete’,‘[w]ard.D2’)
D=Ip('s4.txt') #簡単な例: 4人の成績
## File: s4.txt / Class: data.frame / Rows: 4 / Columns: 3
##
## v1.English v2.Physics v3.Latin
## i1.Ana 9 14 18
## i2.Juan 17 7 11
## i3.Mary 15 13 14
## i4.Ken 5 18 8
gHeatDd() #クラスター・ヒートチャート
gHeatDd(gr=3,gc=0) #gr:行分割=3,gc:列分割=0
gHeatDd(r=2,c=0) #樹形図の高さ(行)=2,(列)=0(無表示)
gHeatDd(lx='Subject',ly='Person',v=T) #ラベル(x,y), v:縦X軸ラベル=T
gHeatDd(f=15) #f:フォントサイズ=15
gHeatDd(k=T) #k:数値出力=T
gHeatDd(k=T,l=T) #l:凡例出力=T
gHeatDd(t=T) #行列転置
gHeatDd(w=T) #白黒
D=Ip('santander-m') #データ: santander-m
## File: santander-m.txt / Class: data.frame / Rows: 31 / Columns: 8
##
## H M E1 E2 E3 N1 N2 N3
## ah 11 23 7 6 20 9 18 6
## ay 6 28 3 1 30 5 22 6
## bueno 17 16 10 12 11 13 9 12
## claramente 33 0 0 26 8 28 3 3
## claro 12 22 5 10 18 13 9 12
## directamente 20 13 17 15 2 22 10 2
## efectivamente 12 21 0 8 26 1 7 26
## eh 24 9 10 13 10 15 8 10
## exactamente 28 5 0 19 14 12 5 16
## generalmente 24 9 5 19 9 0 19 15
gHeatDd() #クラスター・ヒートチャート
—–
(東京大学 上田博人 Hiroto Ueda, 2022)