开发者

R vegdist(jaccard): how to include row name for clustering? [duplicate]

This question already has an answer here: Closed 11 years ago.

Possible Duplicate:

R cluster with Tanimoto/Jaccard

Input

genename  treatment1 treatment2 treatment3
aaa       1          0          0
bbb       0          1          1
ccc       1          1          1
ddd       0          0          0

By doing

d <- vegdist(mytable, method = "jaccard")

from the package vegan. Error message 开发者_JAVA百科as follows appears.

Error in rowSums(x, na.rm = TRUE) : 'x' must be numeric.

I type str(mytable), I see

'data.frame': xxx obs of xxx variables:
$ aaa : int 1 0 0
$ bbb : int 0 1 1
$ ccc : int 1 1 1
$ ddd : int 0 0 0 

As gene.name are needed to interprete the result, I want to keep the aaa, bbb, ccc and ddd.

I also tried to remove the first column by the following command, however, either of these commands can solve the problem

rownames(mytable) <- mytable[,1]
mytable <-mytable[,-1] 

Could you mind to teach me how to solve this problem?


Here's what I get with a dfrm I named geneRx:

> rownames(geneRx) <-geneRx[,1]
> geneRx <-geneRx[,-1] 
> geneRx
    treatment1 treatment2 treatment3
aaa          1          0          0
bbb          0          1          1
ccc          1          1          1
ddd          0          0          0
> d <- vegdist(geneRx, method = "jaccard")
Warning message:
In vegdist(geneRx, method = "jaccard") :
  you have empty rows: their dissimilarities may be meaningless in method jaccard
> d
          aaa       bbb       ccc
bbb 1.0000000                    
ccc 0.6666667 0.3333333          
ddd 1.0000000 1.0000000 1.0000000

That is a warning, not an error, and it seems reasonalbly informative. If you don't have a treatment, you cannot compare to the other cases. And the rownames are used as labels. So what is the problem?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜