0

在使用 R 的 igraph 中添加节点的属性时我遇到了一些问题。我创建了一个名为 journal.txt 的文本列表,我想给我的图的节点一个属性。对于其他文本或数字列表,我绝对没有问题,但我有这个。

有了这个我读了txt文件,只读了第一列,虽然只有一个,读为字符,虽然我也试过没有,但它不起作用

journalList = read.csv("c:/temp/biblioCoupling/journals.txt", header=FALSE)
journalLR = (journalList[1:303,1]) 
journalLR = as.character(journalLR) 
V(g)$journalName = journalLR

然后当我保存文件时,

write.graph(gr,"filename.gml",format=c("gml"), creator="Claudio Biscaro")

我看到了我添加到节点的所有其他属性,但没有看到这个!!!

可能是因为 journalLR 中的某些条目长度超过 15 个字符吗?我完全不知道为什么我不能这样做

4

2 回答 2

0

您的代码不可重现,无法确定,但我猜这V(g)$journalName是一个复杂的属性,即它不是一个值向量,而是一个值列表。

要检查,您可以执行str(g)然后查看journalName属性后的代码字母。如果是x,那么它是复杂的,如果是c,那么它是字符。

如果这是问题所在并且您真的不需要列表,那么解决方法是

g <- remove.vertex.attribute(g, "journalName")
V(g)$journalName <- journalName
于 2012-12-07T18:21:51.847 回答
0

通过一次添加一个来解决。那很奇怪。经过长时间的尝试!

for (i in 1:length(journalLR))
{
  V(g)[i]$journalName = journalLR[i]
}

可能这不是一个正式的好解决方案,但它有效!

于 2012-12-07T14:00:04.170 回答