如果这个问题看起来多余,我深表歉意,但我开始在课堂上使用 R 及其 SNA 工具,并且已经运行了几个不同的教程/实验室来习惯。一个总是被推荐的资源是斯坦福大学的 SNA 实验室,但即使只是运行介绍性实验室也会返回许多让我感到困惑的错误。带有注释的完整 R 代码可在此处获得:
http://sna.stanford.edu/lab.php?l=1
第一部分相当直截了当,我了解大部分情况。但是一旦我尝试向图形添加顶点属性(从第 236 行开始),我遇到了我们刚刚创建的图形对象“krack_full”的问题。运行这个...:
for (i in V(krack_full)) {
for (j in names(attributes)) {
krack_full <- set.vertex.attribute(krack_full,
j,
index = i,
attributes[i + 1, j])
}
}
...返回这个:
Error in set.vertex.attribute(krack_full, j, index = i, attributes[i + :
unused argument (index = i)
所以我认为,很好,使用他们概述的第二种方法,然后继续:
attributes = cbind(1:length(attributes[,1]), attributes)
krack_full <- graph.data.frame(d = krack_full_nonzero_edges,
+ vertices = attributes)
这似乎工作正常 - 除了它实际上创建了一个名为“(1:长度(属性[,1])”的属性......
> summary(krack_full)
IGRAPH DN-- 21 232 --
attr: name (v/c), 1:length(attributes[, 1]) (v/n), AGE (v/n), TENURE (v/n), LEVEL (v/n), DEPT
(v/n), advice_tie (e/n), friendship_tie (e/n), reports_to_tie (e/n)
所以,一切都已经很奇怪了。最后,当我尝试在下一步中获取顶点属性时,我遇到了一些关于对象类的错误:
> get.vertex.attribute(krack_full, 'AGE')
Error in get.vertex.attribute(krack_full, "AGE") :
get.vertex.attribute requires an argument of class network.
> get.vertex.attribute(krack_full, 'TENURE')
Error in get.vertex.attribute(krack_full, "TENURE") :
get.vertex.attribute requires an argument of class network.
> get.vertex.attribute(krack_full, 'LEVEL')
Error in get.vertex.attribute(krack_full, "LEVEL") :
get.vertex.attribute requires an argument of class network.
> get.vertex.attribute(krack_full, 'DEPT')
Error in get.vertex.attribute(krack_full, "DEPT") :
get.vertex.attribute requires an argument of class network.
...从这里开始,几乎没有什么能像我预期的那样工作。所以我怀疑导入数据的图形对象“krack_full”不是它应该是的......?
再次,如果我犯了一个完全的新手错误,我很抱歉,但如果你能指出我正确的方向,我将不胜感激。我想更好地了解这里发生了什么。
非常感谢。