画热图会涉及到的几个小函数
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等参数是用来设置图形的
![](https://img.haomeiwen.com/i25011773/8b293f6353cd734d.png)
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
网友评论