r语言 - 如何解决错误"Error in mde(x): 'list' object cannot be coerced to type 'double' Traceback:"?



我有一个.tsv文件,类似于下面给出的示例。

index    GLWSKIKEVGKEAAKA  GLFDIIKKIAESI GLLDIVKKVVGAFGSL GLFDIVKKVVGALGSL 
GLWSKIKEVGKEAAKA    33  7   10  11  9   9   11  10
GLFDIIKKIAESI       7   13  8   9   8   9   11  11
GLLDIVKKVVGAFGSL    10  8   16  14  13  11  11  10
GLFDIVKKVVGALGSL    11  9   14  16  14  12  12  11

文件读取完美:

m <- read.table("out_1.csv", sep=",",header=TRUE, row.names='index')

尝试使用下面给出的库构建网络图。

library(igraph)
ig <- graph.adjacency(m, mode="undirected", weighted=TRUE)

引发错误

Error in mde(x): 'list' object cannot be coerced to type 'double'
Traceback:
1. graph.adjacency(m, mode = "undirected", weighted = TRUE)
2. graph.adjacency.dense(adjmatrix, mode = mode, weighted = weighted, 
.     diag = diag)
3. `mode<-`(`*tmp*`, value = "double")

如何解决这个问题

帮助页面说你需要一个方形邻接矩阵。

您的示例中有一个包含8列和4行的data.frame
(我假设您的标题中有空列,这些列不会显示在粘贴的文本中。

这将起作用:

m <- as.matrix(read.table("out_1.csv", sep=",", header=TRUE, row.names='index')[, 1:4])
library(igraph)
ig <- graph.adjacency(m, mode="undirected", weighted=TRUE)
ig
#> IGRAPH 80e1470 UNW- 4 10 -- 
#> + attr: name (v/c), weight (e/n)
#> + edges from 80e1470 (vertex names):
#>  [1] GLWSKIKEVGKEAAKA--GLWSKIKEVGKEAAKA GLWSKIKEVGKEAAKA--GLFDIIKKIAESI   
#>  [3] GLWSKIKEVGKEAAKA--GLLDIVKKVVGAFGSL GLWSKIKEVGKEAAKA--GLFDIVKKVVGALGSL
#>  [5] GLFDIIKKIAESI   --GLFDIIKKIAESI    GLFDIIKKIAESI   --GLLDIVKKVVGAFGSL
#>  [7] GLFDIIKKIAESI   --GLFDIVKKVVGALGSL GLLDIVKKVVGAFGSL--GLLDIVKKVVGAFGSL
#>  [9] GLLDIVKKVVGAFGSL--GLFDIVKKVVGALGSL GLFDIVKKVVGALGSL--GLFDIVKKVVGALGSL

相关内容

最新更新