我有47 X 49数据帧,我将其转换为矩阵
dat=as.matrix(df)
但是当我使用
时heatmap.2(dat)
它的说法
`X'必须是数字矩阵。
我使用is.na(dat)
及其所有FALSE
检查了NA值。
有谁知道这个错误?
谢谢!
答案 0 :(得分:0)
一个可能的问题可能是数据框中的值转换为字符串而不是整数或浮点数,例如,
例如,
> df
n s
1 2 aa
2 3 bb
3 5 cc
> as.matrix(df)
n s
[1,] "2" "aa"
[2,] "3" "bb"
[3,] "5" "cc"
所以,你可以做的是从矩阵中删除所有包含字母的列并使用apply函数,例如,
> m = matrix(rep("3", 30), 5,6)
> m
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] "3" "3" "3" "3" "3" "3"
[2,] "3" "3" "3" "3" "3" "3"
[3,] "3" "3" "3" "3" "3" "3"
[4,] "3" "3" "3" "3" "3" "3"
[5,] "3" "3" "3" "3" "3" "3"
> apply(m, 1,as.numeric)
[,1] [,2] [,3] [,4] [,5]
[1,] 3 3 3 3 3
[2,] 3 3 3 3 3
[3,] 3 3 3 3 3
[4,] 3 3 3 3 3
[5,] 3 3 3 3 3
[6,] 3 3 3 3 3