簡體   English   中英

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.attrvertex.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM