首页 > 解决方案 > 如何使用 R 中的命令 heatmap() 修复错误“x”必须是数字矩阵?

问题描述

我知道这个问题已被多次询问和回答,但我仍然很难过。

我将我的 CSV 读入 R,将其转换为带有 的矩阵as.matrix(data),并将名称正确分配给列和行并删除这些因素。当我查看我的矩阵时,它看起来很合适。我什至用过as.numeric(as.matrix(data))。当我运行对象时is.numeric(data),结果是TRUE.

我对矩阵的看法:

> data

        JOHW           UOK161         SAUJ.y        UOK140         SHEKO.y      
AGT     "1.819354e+00" "   24.727533" "  819.32560" "1.607498e+02" "  85.094938"
ANXA13  "1.212902e+00" "    1.177502" "  485.30797" "7.442122e-01" " 111.144408"
ASAP3   "6.398060e+02" "   54.753822" " 1430.38139" "2.493111e+02" " 336.906488"
ATL1    "4.669674e+01" "   54.753822" "  288.82701" "1.309814e+02" "  27.786102"
ATP10A  "2.428837e+03" " 2591.680909" "  389.03230" "2.999175e+02" "   6.946526"
BCL2L15 "6.852899e+01" "   41.801305" "  243.63639" "1.711688e+01" "  26.049471"
BHMT    "1.212902e+00" "    5.887508" "  361.52497" "3.572219e+01" "  92.041463"
CCDC8   "3.032256e+00" "  263.171596" "  762.34613" "1.719130e+02" "   0.000000"
CHMP4C  "6.810447e+02" "  618.777064" "  369.38421" "6.489531e+02" "  85.094938"
CLDN2   "2.392450e+03" " 3095.062822" " 1609.17906" "5.313675e+02" "8497.337336"
CLIC3   "9.703219e+01" "    1.766252" " 1186.74500" "1.555404e+02" " 279.597652"
CSF2    "1.114657e+03" "   69.472591" "    0.00000" "6.668142e+02" "  98.987989"
CXCL1   "8.982149e+03" "  195.465257" "   72.69796" "2.701863e+04" "1540.392033"
CXCL8   "8.857826e+03" "  174.270229" "  715.19069" "5.974461e+04" "5925.386264"
DAPK1   "3.502862e+03" "10547.470130" "  471.55430" "2.759539e+03" "  31.259365"
DENND2A "4.427094e+01" "   88.312616" "  459.76545" "3.825251e+02" "  90.304832"
DSP     "8.854188e+01" " 8522.167461" "  695.54260" "1.677454e+03" "  45.152416"
EMX2    "0.000000e+00" "    6.476259" "  117.88858" "7.442122e-01" " 797.113803"
ETNK2   "2.910966e+02" "  382.688003" "  294.72144" "1.391677e+02" "  53.835573"
FER1L4  "1.121935e+02" "  469.823118" "  687.68336" "8.357504e+02" " 112.881040"
FLNC    "1.819354e+00" "  141.888937" "  807.53675" "2.945592e+03" " 187.556189"
GSN     "2.092257e+03" " 2320.855553" " 4743.05038" "4.105075e+03" "1033.295670"
HAGLR   "9.945800e+02" "    8.242511" "   43.22581" "5.983466e+02" " 425.474688"
HSPG2   "2.340235e+04" "11716.729160" " 2375.45481" "2.935099e+04" " 329.959962"
IGSF3   "6.301028e+02" " 3352.346910" " 1754.57497" "5.480379e+03" " 230.971973"
IL1R2   "2.480385e+02" "  161.906463" "  296.68625" "2.947080e+02" "  39.942522"
IL4I1   "2.140773e+02" "   97.732629" "   29.47214" "1.112597e+03" " 164.979981"
IL6     "8.490317e+02" "   14.130019" "   86.45162" "7.971257e+03" " 477.573629"
IRX6    "6.064512e-01" "    1.177502" "  159.14958" "3.721061e+01" "   1.736631"
KCNK1   "1.334193e+02" "  193.699005" " 1112.08223" "9.525917e+02" " 107.671145"
KCTD17  "5.003222e+02" "  184.278992" "  756.45170" "1.189251e+03" "  76.411781"
KLF2    "8.369027e+01" "  145.421441" "  196.48096" "1.175855e+02" " 866.579058"
MFSD2A  "1.006709e+02" "   77.126351" "  233.81234" "5.834624e+02" "  19.102945"
MLPH    "1.819354e+00" "   44.156308" "  115.92377" "2.000443e+03" "1430.984256"
NBL1    "4.634500e+03" " 2298.483024" " 3373.57809" "4.120703e+03" " 720.702022"
PCSK5   "4.857674e+02" " 2237.252943" " 5246.04163" "5.953698e+02" " 659.919924"
PHF2    "1.360877e+03" " 1474.820690" "  263.28449" "5.760203e+02" "   5.209894"
PLEKHF2 "7.720124e+02" "  674.119637" "  117.88858" "6.206730e+02" " 540.092359"
PRUNE2  "9.964600e+03" "  261.994095" "10258.27093" "3.731480e+03" "2823.762622"
PSG1    "7.944511e+01" "  264.937848" "   60.90910" "8.186335e+00" " 595.664563"
PSG4    "3.032256e+00" "   61.818831" "  406.71559" "3.081039e+02" "4027.248167"
RHOB    "7.871737e+02" " 8911.331723" "11099.20944" "1.444516e+03" "1839.092630"
SCARF2  "3.638707e+00" "  207.829023" "  261.31968" "1.205624e+02" "  13.893051"
SCN3A   "1.983095e+02" "    6.476259" "  475.48392" "8.930547e+01" "  86.831569"
SEMA6D  "0.000000e+00" "   42.978807" "  571.75959" "7.442122e-01" "  27.786102"
SMIM24  "3.638707e+00" "    3.532505" "  685.71855" "1.205624e+02" " 100.724620"
SMPDL3A "2.474321e+02" " 1447.149404" " 1937.30227" "2.374037e+02" " 430.684582"
SPOCK1  "6.929918e+03" " 1133.345241" "21233.69736" "2.625953e+04" "4909.456908"
SULF2   "4.851610e+00" " 2137.754062" " 5088.85687" "4.219683e+02" "1125.337133"
TPD52   "2.226889e+03" " 1012.651332" " 1035.45466" "2.391154e+03" " 192.766083"
TRHDE   "6.670963e+00" "    1.766252" "  734.83879" "1.488424e+01" "  85.094938"
TTC9    "6.185802e+01" "   64.762585" "  269.17892" "1.815878e+02" "  45.152416"
UGT1A9  "1.028541e+03" " 1622.597135" "  104.13491" "1.827785e+03" "2538.955076"
VAV3    "7.823221e+01" "  592.872030" " 4255.77759" "8.156566e+02" " 423.738056"
VWA7    "3.396127e+01" "   65.351336" "  351.70092" "3.661524e+02" "  60.782098"
WNT5A   "1.368154e+03" "  471.589370" "  373.31382" "1.780156e+03" "  67.728624"

当我运行热图命令时:

heatmap(data, scale="column", main="Genomic Expression")

我明白了

Error in heatmap(y, scale = "column", main = "Genomic Expression") : 
  'x' must be a numeric matrix

我错过了什么吗?............

编辑

dput(data)



>  structure(c("1.819354e+00", "1.212902e+00", "6.398060e+02",
> "4.669674e+01",  "2.428837e+03", "6.852899e+01", "1.212902e+00",
> "3.032256e+00",  "6.810447e+02", "2.392450e+03", "9.703219e+01",
> "1.114657e+03",  "8.982149e+03", "8.857826e+03", "3.502862e+03",
> "4.427094e+01",  "8.854188e+01", "0.000000e+00", "2.910966e+02",
> "1.121935e+02",  "1.819354e+00", "2.092257e+03", "9.945800e+02",
> "2.340235e+04",  "6.301028e+02", "2.480385e+02", "2.140773e+02",
> "8.490317e+02",  "6.064512e-01", "1.334193e+02", "5.003222e+02",
> "8.369027e+01",  "1.006709e+02", "1.819354e+00", "4.634500e+03",
> "4.857674e+02",  "1.360877e+03", "7.720124e+02", "9.964600e+03",
> "7.944511e+01",  "3.032256e+00", "7.871737e+02", "3.638707e+00",
> "1.983095e+02",  "0.000000e+00", "3.638707e+00", "2.474321e+02",
> "6.929918e+03",  "4.851610e+00", "2.226889e+03", "6.670963e+00",
> "6.185802e+01",  "1.028541e+03", "7.823221e+01", "3.396127e+01",
> "1.368154e+03",  "   24.727533", "    1.177502", "   54.753822", "  
> 54.753822",  " 2591.680909", "   41.801305", "    5.887508", "  263.171596",  "  618.777064", " 3095.062822", "    1.766252", "   69.472591",  "  195.465257", "  174.270229", "10547.470130", "   88.312616",  " 8522.167461", "    6.476259", "  382.688003", "  469.823118",  "  141.888937", " 2320.855553", "    8.242511", "11716.729160",  " 3352.346910", "  161.906463", "   97.732629", "  
> 14.130019",  "    1.177502", "  193.699005", "  184.278992", "  145.421441",  "   77.126351", "   44.156308", " 2298.483024", " 2237.252943",  " 1474.820690", "  674.119637", "  261.994095", "  264.937848",  "   61.818831", " 8911.331723", "  207.829023", "    6.476259",  "   42.978807", "    3.532505", " 1447.149404", " 1133.345241",  " 2137.754062", " 1012.651332", "    1.766252", "   64.762585",  " 1622.597135", "  592.872030", "   65.351336", "  471.589370",  "  819.32560", "  485.30797", " 1430.38139", "  288.82701", "  389.03230",  "  243.63639", "  361.52497", "  762.34613", "  369.38421", " 1609.17906",  " 1186.74500", "    0.00000", "   72.69796", "  715.19069", "  471.55430",  "  459.76545", "  695.54260", "  117.88858", "  294.72144", "  687.68336",  " 
> 807.53675", " 4743.05038", "   43.22581", " 2375.45481", " 1754.57497",  "  296.68625", "   29.47214", "   86.45162", "  159.14958", " 1112.08223",  "  756.45170", "  196.48096", "  233.81234", "  115.92377", " 3373.57809",  " 5246.04163", "  263.28449", "  117.88858", "10258.27093", "   60.90910",  "  406.71559", "11099.20944", "  261.31968", "  475.48392", "  571.75959",  "  685.71855", " 1937.30227", "21233.69736", " 5088.85687", " 1035.45466",  "  734.83879", "  269.17892", "  104.13491", " 4255.77759", "  351.70092",  "  373.31382", "1.607498e+02", "7.442122e-01", "2.493111e+02",  "1.309814e+02",
> "2.999175e+02", "1.711688e+01", "3.572219e+01",  "1.719130e+02",
> "6.489531e+02", "5.313675e+02", "1.555404e+02",  "6.668142e+02",
> "2.701863e+04", "5.974461e+04", "2.759539e+03",  "3.825251e+02",
> "1.677454e+03", "7.442122e-01", "1.391677e+02",  "8.357504e+02",
> "2.945592e+03", "4.105075e+03", "5.983466e+02",  "2.935099e+04",
> "5.480379e+03", "2.947080e+02", "1.112597e+03",  "7.971257e+03",
> "3.721061e+01", "9.525917e+02", "1.189251e+03",  "1.175855e+02",
> "5.834624e+02", "2.000443e+03", "4.120703e+03",  "5.953698e+02",
> "5.760203e+02", "6.206730e+02", "3.731480e+03",  "8.186335e+00",
> "3.081039e+02", "1.444516e+03", "1.205624e+02",  "8.930547e+01",
> "7.442122e-01", "1.205624e+02", "2.374037e+02",  "2.625953e+04",
> "4.219683e+02", "2.391154e+03", "1.488424e+01",  "1.815878e+02",
> "1.827785e+03", "8.156566e+02", "3.661524e+02",  "1.780156e+03", " 
> 85.094938", " 111.144408", " 336.906488",  "  27.786102", "   6.946526", "  26.049471", "  92.041463", "   0.000000",  "  85.094938", "8497.337336", " 279.597652", "  98.987989", "1540.392033",  "5925.386264", "  31.259365", "  90.304832", " 
> 45.152416", " 797.113803",  "  53.835573", " 112.881040", " 187.556189", "1033.295670", " 425.474688",  " 329.959962", " 230.971973", "  39.942522", " 164.979981", " 477.573629",  "   1.736631", " 107.671145", "  76.411781", " 866.579058", "  19.102945",  "1430.984256", " 720.702022", " 659.919924", "   5.209894", "
> 540.092359",  "2823.762622", " 595.664563", "4027.248167", "1839.092630", "  13.893051",  "  86.831569", "  27.786102", "
> 100.724620", " 430.684582", "4909.456908",  "1125.337133", " 192.766083", "  85.094938", "  45.152416", "2538.955076",  " 423.738056", "  60.782098", "  67.728624"), .Dim = c(56L, 5L ), .Dimnames = list(c("AGT", "ANXA13", "ASAP3", "ATL1", "ATP10A", 
> "BCL2L15", "BHMT", "CCDC8", "CHMP4C", "CLDN2", "CLIC3", "CSF2", 
> "CXCL1", "CXCL8", "DAPK1", "DENND2A", "DSP", "EMX2", "ETNK2", 
> "FER1L4", "FLNC", "GSN", "HAGLR", "HSPG2", "IGSF3", "IL1R2",  "IL4I1",
> "IL6", "IRX6", "KCNK1", "KCTD17", "KLF2", "MFSD2A",  "MLPH", "NBL1",
> "PCSK5", "PHF2", "PLEKHF2", "PRUNE2", "PSG1",  "PSG4", "RHOB",
> "SCARF2", "SCN3A", "SEMA6D", "SMIM24", "SMPDL3A",  "SPOCK1", "SULF2",
> "TPD52", "TRHDE", "TTC9", "UGT1A9", "VAV3",  "VWA7", "WNT5A"),
> c("JOHW", "UOK161", "SAUJ.y", "UOK140", "SHEKO.y" )))

标签: rmatrixheatmapnumeric

解决方案


在导入我的 csv 时使用 stringsAsFactors 可以解决问题:

heatmapmatrix <- read.csv(file = 'heatmapmatrix.csv', stringsAsFactors = FALSE)
rownames(heatmapmatrix) <- heatmapmatrix[, 1]
data <- heatmapmatrix[,-1]
data <- as.matrix(data)
heatmap(data)

推荐阅读