[英]Create graph with no edges from node list with attributes in the network package in r
[英]R Network Package - node attributes
我最近開始學習R,對網絡建模應用程序特別感興趣。 我制作了一個樣本數據集,並希望對其進行可視化,最終進行嚴格的統計網絡分析。
例子是一個高中的友誼網絡。 節點屬性位於HS1_Node_Attributes.csv中,而鄰接矩陣位於HS1_adjacency_matrix中。 盡管遇到節點屬性(人員特征)方面的麻煩,但我可以可視化網絡。 我正在使用網絡軟件包。
我得到的錯誤如下:
set.vertex.attribute中的錯誤(g,vertex.attrnames [[i]],vertex.attr [[i]]):set.vertex.attribute中給出的值不合適。
我已經通過一些在線教程和R Network軟件包文檔交叉引用了我的示例。 潛在的問題可能是我的屬性數據框的類型,盡管我確認它是類型列表,可以進行檢出。 所以我不確定是什么問題。 如果我不刪除節點屬性( vertex.attr
和vertex.attrnames
參數),一切都將正常工作(這意味着我可以成功創建網絡對象),這向我表明其余的代碼是正確的。 我的代碼如下。
high_school1_attributes <- read.table("HS1_Node_Attributes.csv", header = TRUE,
sep = ",")
high_school1_adj <- read.table("HS1_adjacency_matrix.csv", header = TRUE,
row.names = 1, sep = ",")
adj1 <- as.matrix(high_school1_adj)
library("network")
high_school1_network <- network(adj1, vertex.attr = high_school1_attributes,
vertex.attrnames = colnames(high_school1_attributes),
directed = FALSE, hyper = FALSE, loops = FALSE,
multiple = FALSE, bipartite = FALSE)
您可能會自動將字符串轉換為因數。 我可以通過執行以下操作來重新創建錯誤:
high_school1_attributes <- read.csv(text=
"Name,Color
Kermit,green
Piggy,pink
Gonzo,blue")
high_school1_adj <- read.csv(text=
",From,To
1,1,3
2,3,2
3,2,1",
row.names = 1)
adj1 <- as.matrix(high_school1_adj)
library("network")
high_school1_network <- network(
adj1,
vertex.attr = high_school1_attributes,
vertex.attrnames = colnames(high_school1_attributes),
directed = FALSE, hyper = FALSE, loops = FALSE,
multiple = FALSE, bipartite = FALSE)
並可以通過將第一條語句替換為:
high_school1_attributes <- read.csv(text=
"Name,Color
Kermit,green
Piggy,pink
Gonzo,blue",
stringsAsFactors=FALSE)
您可以通過繪制以下內容來查看其作品:
library(igraph)
library(intergraph)
hs_graph <- asIgraph(high_school1_network)
plot(hs_graph, vertex.size=8,
vertex.color=V(hs_graph)$Color,
vertex.label=V(hs_graph)$Name,
edge.arrow.size=0.25,layout=layout.fruchterman.reingold)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.