0

我使用了以下代码:

data<-read.csv('/Users/mf/Desktop/acceptor.csv')
just_nums<-sapply(data,is.numeric)
just_nums_data<-data[,just_nums]
str(just_nums_data)
heatmap(just_nums_data)

但是得到了这个输出:

data<-read.csv('/Users/mf/Desktop/acceptor.csv')
just_nums<-sapply(data,is.numeric)
just_nums_data<-data[,just_nums]
str(just_nums_data)
'data.frame':   622 obs. of  16 variables:
 ID                                 : int  1 2 4 5 6 7 8 9 10 11 ...
 QnWeight_initial                   : int  158 165 137 129 155 150 119 153 137 153 ...
 QnWeight_initial_mg                : num  15.8 16.5 13.7 12.9 15.5 15 11.9 15.3 13.7 15.3   ....
 Days_till_1st_Wrkr                 : int  NA 21 NA 26 NA 23 22 20 22 NA ...
 Days_before_max_Wrkr_Eclosion      : int  NA 12 NA 7 NA 10 11 13 11 NA ...
 Wrkr_Eclosion_Bin                  : int  NA 3 NA 1 NA 1 2 3 2 NA ...
 QnMass_At_Wrkr_Eclosion            : int  NA 83 NA 73 NA 67 53 78 56 NA ...
 ColonyMass_At_Wrkr_Eclosion        : int  NA 117 NA 53 NA 91 85 111 96 NA ...
 Adult_Wrkrs_At_Wrkr_Eclosion       : int  NA 9 NA 5 NA 1 7 3 2 NA ...
 Mature_Brood_At_Wrkr_Eclosion      : int  NA 25 NA 13 NA 17 18 27 28 NA ...
 Sum_wrkrsPlusBrood_At_Wrkr_Eclosion: int  0 34 0 18 0 18 25 30 30 0 ...
QnMass_2wksLater                   : int  NA 124 NA NA NA 111 NA NA NA NA ...
QnMass_4wksLater                   : int  NA 117 NA NA NA 88 NA NA NA NA ...
ColonyMass_4wksLater               : int  NA 571 NA NA NA 736 NA NA NA NA ...
QnMass_2mnthsLater                 : int  NA 118 NA NA NA 86 NA NA NA NA ...
ColonyMass_2mnthsLater             : int  NA 445 NA NA NA 1817 NA NA NA NA ...
heatmap(just_nums_data)
Error in heatmap(just_nums_data) : 'x' must be a numeric matrix

我想我的困惑在于“int”类型满足 is.numeric() 但在传递给 heatmap() 时不算作数字。这是有什么问题吗?

4

1 回答 1

4
  • heatmap需要x是一个数字矩阵(参见 参考资料?heatmap)。
  • 它通过使用is.numeric(x) 或更具体地说是numeric具有 2 维的对象 来测试这一点
    • length(di <- dim(x)) != 2 || !is.numeric(x))
  • adata.frame不是数字矩阵,即使所有列都是数字

例如:

.d <- data.frame(x= 1:10, y = runif(10))
is.numeric(.d) 
## [1] FALSE

所以,你需要运行

heatmap(as.matrix(just_nums_data))
于 2012-08-08T03:56:42.373 回答