美文网首页
【点】dist、hclust与cutree函数

【点】dist、hclust与cutree函数

作者: JamesMori | 来源:发表于2021-08-09 14:48 被阅读0次

画热图会涉及到的几个小函数

dist()

使用特定的distance计算方法计算行与行之间的距离。
可使用的distance计算方法:"euclidean"、"maximum"、"manhattan"、"canberra"、"binary"、"minkowski"。

> a<-1:5
> b<-a+1
> c<-a+1.1
> d<-cbind(a,b,c)
> rownames(d)<-c(paste("a",1:5,sep=""))
> class(d)
[1] "matrix" "array" 
> e<-dist(d,method="euclidean",diag=T,upper=T)
> class(e)
[1] "dist"
> e
         a1       a2       a3       a4       a5
a1 0.000000 1.732051 3.464102 5.196152 6.928203
a2 1.732051 0.000000 1.732051 3.464102 5.196152
a3 3.464102 1.732051 0.000000 1.732051 3.464102
a4 5.196152 3.464102 1.732051 0.000000 1.732051
a5 6.928203 5.196152 3.464102 1.732051 0.000000

hclust()

根据差异进行分层分类
可用的方法有:"ward.D"、"ward.D2"、"single"、"complete"、"average" (= UPGMA)、"mcquitty" (= WPGMA)、"median" (= WPGMC)、"centroid" (= UPGMC).

f<-hclust(e,method="ward.D")
plot(f, hang=-1,main="test")# hang等参数是用来设置图形的
结果图

cutree()

将hclust的结果进一步划分为指定类
设置参数k,设定分为几类
设置参数h,根据高度划分为几类

> g<-cutree(f, k=2)
> g
a1 a2 a3 a4 a5 
 1  1  1  2  2 
> g<-cutree(f, h=2)
> g
a1 a2 a3 a4 a5 
 1  2  2  3  3 
> g<-cutree(f,k=c(2,3))
> g
   2 3
a1 1 1
a2 1 2
a3 1 2
a4 2 3
a5 2 3
> g<-cutree(f,h=c(2,3))
> g
   2 3
a1 1 1
a2 2 1
a3 2 1
a4 3 2
a5 3 2

相关文章

网友评论

      本文标题:【点】dist、hclust与cutree函数

      本文链接:https://www.haomeiwen.com/subject/xnyivltx.html