2

私の人生では、なぜこの方法が失敗するのか理解できません。ここに追加の目があります。

heatmap.2(TEST,trace="none",density="none",scale="row", 
     ColSideColors=c("red","blue")[data.test.factors],
     col=redgreen,labRow="", 
     hclustfun=function(x) hclust(x,method="complete"),
     distfun=function(x) as.dist((1 - cor(x))/2))  

私が得るエラーは次のとおりです:行の樹状図の順序が間違った長さのインデックスを与えました

distfunを含めないと、すべてが非常にうまく機能し、hclust関数に応答します。どんなアドバイスでも大いに感謝されるでしょう。

4

3 に答える 3

3

提供された行列の行間の距離を計算するための標準的な呼び出しdist、corは提供された行列の列間の相関を計算するため、上記の例を機能させるには、行列を転置する必要があります。

heatmap.2(TEST,trace="none",density="none",scale="row", 
     ColSideColors=c("red","blue")[data.test.factors],
     col=redgreen,labRow="", 
     hclustfun=function(x) hclust(x,method="complete"),
     distfun=function(x) as.dist((1 - cor(  t(x)  ))/2))

動作するはずです。正方行列を使用すると、機能するコードが得られますが、それが何であるかを計算することはできません。

于 2013-03-12T15:20:28.430 に答える
2

これはまだ再現可能ではありません...

 TEST <- matrix(runif(100),nrow=10)
  heatmap.2(TEST, trace="none", density="none", 
            scale="row",
            labRow="",
            hclust=function(x) hclust(x,method="complete"),
            distfun=function(x) as.dist((1-cor(x))/2))

私のために働きます。redgreen何なのかわからないdata.test.factors

エラーの正確な場所を追跡しようとしたことがありますdebug(heatmap.2)options(error=recover)(または、それ自体では役に立たない可能性がありますが)。traceback()

> sessionInfo()
R version 2.13.0 alpha (2011-03-18 r54865)
Platform: i686-pc-linux-gnu (32-bit)
...
other attached packages:
[1] gplots_2.8.0   caTools_1.12   bitops_1.0-4.1 gdata_2.8.2    gtools_2.6.2  
于 2011-07-15T23:56:24.893 に答える
1

Ben Bolkerの回答に基づいてTEST、がn×n行列でdata.test.factors、n個の整数のベクトルである場合、コードは機能しているように見えます。たとえば、

 n1 <- 5
 n2 <- 5
 n3 <- 5
 TEST <- matrix(runif(n1*n2), nrow=n1)
 data.test.factors <- sample(n3)

その後、コードが機能します。ただし、n1n2が異なる場合はエラーが発生しますrow dendrogram ordering gave index of wrong lengthが、同じであるn3が異なる場合やdata.test.factors整数以外の場合はエラーが発生します'ColSideColors' must be a character vector of length ncol(x)

于 2011-07-16T08:58:59.430 に答える