[英]How to fix “Factor level duplicated” Error in R heatmaply()?
我正在嘗試根據該矩陣制作熱圖:
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(levels)):因子級別 [6] 重復
部分熱圖代碼如下:
p<-heatmaply(c1,
dendogram = "none",
xlab = "", ylab = "",
main = "",
scale = "column",
margins =c(60,100,40,20),............
我應該怎么做才能讓它工作? 我閱讀了很多關於該錯誤的問題,我發現我需要提供獨特的數據,但我不知道在哪里以及如何做到這一點。 請你幫助我好嗎?
我們可以將其轉換為data.frame
並且錯誤會 go 消失,因為這是data.frame
中不允許的重復行名的情況
library(heatmaply)
heatmaply(as.data.frame.matrix(table(mtcars[c('cyl', 'vs')])))
另外,提到通過包裝as.matrix
, table
class 仍然存在
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- 可以是熱圖 object,也可以是數字矩陣 默認為 TRUE,除非 x 包含任何 NA。
因此,我們可以將class
轉換為matrix
class(m1) <- "matrix"
現在,它應該工作
heatmaply(m1)
請注意, table
或matrix
object 都可能導致與 OP 帖子中類似的錯誤
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] 重復
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.