繁体   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