r - 如何修复 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
并且错误会消失,因为这是不允许出现重复行名的情况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 包含任何 NA。
所以,我们可以class
将matrix
class(m1) <- "matrix"
现在,它应该工作
heatmaply(m1)
请注意,table
ormatrix
对象都可能导致与 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] 重复
推荐阅读
- android - 从 GoogleMap onInfoWindowClick 回调中关闭对话框片段
- node.js - 部署后 HEROKU 出现 CORS 问题
- c# - TemplateBinding 在 WPF 自定义控件中的 INotifyPropertyChanged 上不起作用
- python - 如何修复错误的转义正则表达式错误(python re)
- javascript - 如何从节点模块中删除/禁用 console.log()
- sql - oracle sql提取特定单词之前的单词
- angular - Angular 的最新版本需要对变量进行初始化。我该如何解决?
- python - python - 我的排序可视化器中的 Tkinter 闪烁画布/矩形
- python - 如何解决在 NOX 的 Pydroid 中安装 kivymd 的错误?
- html - html5 mp4 视频在 Chrome 中加载缓慢