我试着根据这个矩阵制作一个热图:
1 2 3 4 5 6 7
C 6211 7608 8089 10514 7363 5375 7268
L 2459 2904 2573 3049 2221 1652 2311
N 3173 4213 3025 4324 2864 1524 2363
S 37 74 141 94 68 48 88
W 1223 1259 914 1691 874 607 912我是这样做的:
c1 <- table(kat_data$delay_code, kat_data$DayOfWeek)
c1 <- as.matrix(c1)
c1现在我正在尝试使用heatmaply()制作一个热图,但是我得到了一个错误:
级别<-(tmp`‘,value =as.character( level ))中的as.character错误:因子级别6被复制
以下是热图代码的一部分:
p<-heatmaply(c1,
dendogram = "none",
xlab = "", ylab = "",
main = "",
scale = "column",
margins =c(60,100,40,20),............我该怎么做才能让它发挥作用?我读了很多关于这个错误的问题,我看到我需要提供独特的数据,但我不知道在哪里和如何做到这一点。你能帮帮我吗?
发布于 2019-11-18 20:02:56
我们可以将其转换为data.frame,错误就会消失,因为这是重复的行名,在data.frame中是不允许的。
library(heatmaply)
heatmaply(as.data.frame.matrix(table(mtcars[c('cyl', 'vs')])))

另外,通过使用as.matrix包装,table类仍然保持不变
m1 <- as.matrix(table(mtcars[c('cyl', 'vs')]))
str(m1)
# 'table' int [1:3, 1:2] 1 3 14 10 4 0
# - attr(*, "dimnames")=List of 2
# ..$ cyl: chr [1:3] "4" "6" "8"
# ..$ vs : chr [1:2] "0" "1"这就像?heatmaply建议的“x”应该是
x-可以是heatmapr对象,也可以是数字矩阵默认值为TRUE,除非x包含任何NAs。
因此,我们可以将class转换为matrix
class(m1) <- "matrix"现在,它应该能工作
heatmaply(m1)请注意,table或matrix对象可能导致类似于OP的post中的错误
heatmaply(table(mtcars[c('cyl', 'vs')]))
levels<-中的错误(*tmp*,value = as.character(levels)):因子级别4被复制
heatmaply(as.matrix(table(mtcars[c('cyl', 'vs')])))
levels<-中的错误(*tmp*,value = as.character(levels)):因子4是重复的
https://stackoverflow.com/questions/58922014
复制相似问题