gpt4 book ai didi

r - 在R中使用graph.adjacency()

转载 作者:行者123 更新时间:2023-12-04 03:38:56 29 4
gpt4 key购买 nike

我在R中有一个示例代码,如下所示:

library(igraph)
rm(list=ls())
dat=read.csv(file.choose(),header=TRUE,row.names=1,check.names=T) # read .csv file
m=as.matrix(dat)
net=graph.adjacency(adjmatrix=m,mode="undirected",weighted=TRUE,diag=FALSE)

我使用csv文件作为输入,其中包含以下数据:
    23732   23778   23824   23871   58009   58098   58256
23732 0 8 0 1 0 10 0
23778 8 0 1 15 0 1 0
23824 0 1 0 0 0 0 0
23871 1 15 0 0 1 5 0
58009 0 0 0 1 0 7 0
58098 10 1 0 5 7 0 1
58256 0 0 0 0 0 1 0

之后,我使用以下命令检查重量值:
E(net)$weight

预期输出如下所示:
> E(net)$weight
[1] 8 1 10 1 15 1 1 5 7 1

但是我得到了奇怪的值(并且每次都不同):
> E(net)$weight
[1] 2.121996e-314 2.121996e-313 1.697597e-313 1.291034e-57 1.273197e-312 5.092790e-313 2.121996e-314 2.121996e-314 6.320627e-316 2.121996e-314 1.273197e-312 2.121996e-313
[13] 8.026755e-316 9.734900e-72 1.273197e-312 8.027076e-316 6.320491e-316 8.190221e-316 5.092790e-313 1.968065e-62 6.358638e-316

我找不到我在哪里和做错了什么?
请帮助我获得正确的预期结果,还请告诉我为什么这个奇怪的输出以及每次运行时都不同。

谢谢,
尼丁

最佳答案

该问题似乎是由于矩阵元素的数据类型所致。 graph.adjacency需要类型为numeric的元素。不知道它是否是一个错误。

做完之后

m <- as.matrix(dat)

通过以下方式将其模式设置为 numeric:
mode(m) <- "numeric"

然后执行:
net <- graph.adjacency(m, mode = "undirected", weighted = TRUE, diag = FALSE)
> E(net)$weight
[1] 8 1 10 1 15 1 1 5 7 1

关于r - 在R中使用graph.adjacency(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14332233/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com