この質問が冗長に思われる場合は申し訳ありませんが、クラスで 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)
だから、彼らが概説した2番目の方法を使用して、それに従ってください:
attributes = cbind(1:length(attributes[,1]), attributes)
krack_full <- graph.data.frame(d = krack_full_nonzero_edges,
+ vertices = attributes)
これはうまくいくようです-文字通り「(1:length(attributes[, 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」は、どういうわけか本来あるべきものではないのではないかと思います...?
繰り返しますが、これが私が犯している完全な初心者の間違いである場合は申し訳ありませんが、正しい方向に向けていただければ幸いです. ここで何が起こっているのかをよりよく理解したいと思います。
どうもありがとうございました。