首页 > 解决方案 > 如何修复:graph.adjacency.densen 非方阵、非方阵中的错误

问题描述

我正在尝试进行网络分析,在获得一些关于文化的定性数据后,我想看看我的文化节点是如何相互关联的。为此,我在 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,mode = mode,weighted = weighted,:
在 structure_generators.c:274:非方阵,非方阵

任何人都可以通过告诉我问题是什么来帮助我,我如何修复代码以获取我的网络?

非常感谢您提前

标签: rmatrixigraphadjacency-matrix

解决方案


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

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


推荐阅读