【问题标题】:ggnetwork data import formatggnetwork数据导入格式
【发布时间】:2018-01-24 13:20:33
【问题描述】:

我这辈子都不知道如何构造我的数据以供 ggnetwork 使用。

我有一个单独的程序,可以生成我选择的任何格式的结构化数据。鉴于 ggnetwork 数据可以是

  • 推断一个节点与另一个节点之间的链接的数据(邻接样式)
  • 将属性/值添加到边缘的数据
  • 向节点添加属性/值的数据

如何导入这些?让我们一个一个来吧--

邻接数据

这部分我得到了——我只是通过代码创建一个矩阵

data <- matrix(c(1,0,3,0,5,6,1,2,3), nrow=3)
colnames(data)=rownames(data)=LETTERS[1:3]

net <- network(data, matrix.type="adjacency")

可行。直截了当。

节点属性

the example here 我看到了这段代码:

n <- network(rgraph(10, tprob = 0.2), directed = FALSE)
n %v% "family" <- sample(letters[1:3], 10, replace = TRUE)
n %v% "importance" <- sample(1:3, 10, replace = TRUE)

我不知道n %v% 做了什么,但我希望能够转储node id, attribute val 并将其导入我的节点。

边缘值

再次,在我看到的示例中

e <- network.edgecount(n)
set.edge.attribute(n, "type", sample(letters[24:26], e, replace = TRUE))
set.edge.attribute(n, "day", sample(1:3, e, replace = TRUE))

但我不知道这意味着什么,也不知道如何通过将其附加到我的邻接列表来添加这些数据,因为这已经是 1-1 数据映射到边缘。

如何使用它们的 val 为我的边导入,并为我的节点 val 导入?

【问题讨论】:

  • 根据网络包文档,%n% 和 %v% 运算符分别用作网络和顶点提取/分配功能的前端。跨度>
  • 您能解释一下您的邻接矩阵吗(因为有些项不是 0 或 1)?你能添加一些数据样本吗?
  • @MrSmithGoesToWashington 我假设这是边缘值

标签: r ggnetwork


【解决方案1】:

假设

(1,0,3,0,5,6,1,2,3)

是你的价值,你可以试试这个:

imported_values <-  c(1,0,3,0,5,6,1,2,3)
data <- matrix(imported_values, nrow=3)
colnames(data)=rownames(data)=LETTERS[1:3]
net <- network(data, matrix.type="adjacency")
net %v% "importance" <- imported_values
ggplot(net, aes(x = x, y = y, xend = xend, yend = yend)) +
  geom_edges() +
  geom_nodes(aes(size = importance)) +
  theme_blank()

【讨论】:

    猜你喜欢
    • 2020-08-14
    • 2017-10-13
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    相关资源
    最近更新 更多