簡體   English   中英

如何修復 R heatmaply() 中的“因子級別重復”錯誤?

[英]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.matrixtable 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)

請注意, tablematrix 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM