如何修复:graph.adjacency.densen中的错误非平方矩阵,非平方矩阵

时间:2019-08-21 18:35:20

标签: r matrix igraph adjacency-matrix

我正在尝试进行网络分析,并在获得有关文化的一些定性数据后,我想了解我的文化节点之间的相互关系。为此,我在Excel中创建了一个具有46行和列的csv文件,也就是一个平方矩阵。我尝试了以下两组代码来在R中获得网络输出。

首次尝试(无效):

library(igraph)
my_data <- read.csv(file.choose(),header=TRUE, row.names=NULL)
my_matrix <- as.matrix(my_data)
my_first_network <- 
graph.adjacency(my_matrix,mode="undirected",diag=FALSE)
my_first_network
plot(my_first_network)

我遇到了这些错误:

  

graph.adjacency.dense(adjmatrix,模式=模式,加权=加权,:
  在structure_generators.c:274处:非平方矩阵,非平方矩阵
  另外:
  警告信息:
  在mde(x)中:强制引入的NAs

第二次尝试(也没有用):

my_data <- read.csv(file.choose(),sep=",",header=TRUE)
nodelist <- names(my_data)[-1]
my_matrix <- as.matrix(my_data) [,-1]
rownames(my_matrix) <- colnames(my_matrix) <- nodelist
my_matrix
library(igraph)
g <- graph_from_adjacency_matrix(my_matrix, mode="undirected", 
weighted=NULL)
plot(g)

得到这些错误:

  

graph.adjacency.dense(adjmatrix,模式=模式,加权=加权,:
  在structure_generators.c:274处:非平方矩阵,非平方矩阵

有人可以告诉我问题是什么,我如何修复代码以获取网络,可以帮助我吗?

非常感谢您

2 个答案:

答案 0 :(得分:0)

因此,如错误指示所示:Non-square matrix, Non-square matrix矩阵不是正方形。 dim(my_matrix) [1] 45 0告诉矩阵是这样组成的:

 [1,]
 [2,]
 [3,]
 [4,]
 [5,]
 [..]

您能告诉我们您的.csv文件的第一行吗?可以使用head(my_data)

答案 1 :(得分:0)

对于那些后来发现这个的人;虽然用户的问题是 CSV 错误,但图邻接需要一个方阵。因此,如果您运行 dim(mat) 并得到类似 12 10 的结果,那么您将有 12 行和 10 列。

在网络分析上下文中,这可能意味着并非所有或您的起点都是目的地(反之亦然,您的目的地从来都不是起点)。