【问题标题】:Create network files from "classic" dataframe in R - igraph从 R - igraph 中的“经典”数据框创建网络文件
【发布时间】:2023-03-18 18:55:02
【问题描述】:

我的目标是在 R 中开发网络可视化,从“经典”数据框开始。因此,我必须创建两个文件:节点和链接。 我当前的数据集如下所示:

Driver   Insurance_taker  Counterparty1    Counterparty2   Counterparty3  Counterparty4   Counterparty5
Allan    Steven           NA               Patrick         Oliver         Jean             William
Ana      Anastasia        Max              Pierre          Jack           Sam              NA

样本数据(请注意数据中有多个NA):

mydata <- data.table(Driver=c("Allan", "Ana"),
      Insurance_taker = c("Steven", "Anastasia"), 
      Counterparty1= c(NA, "Max"),
      Counterparty2= c("Patrick", "Pierre"),
      Counterparty3= c("Olivier", "Jack"),
      Counterparty4= c("Jean", "Sam"),
      Counterparty5= c("William",NA))

我的目标是拥有一个名为“nodes.csv”的文件,例如:

Names      Type
Allan      Driver
Ana        Driver
Steven     Insurance_taker
Anastasia  Insurance_taker
...        ...

我已经设法获得了这个文件,但我还想创建另一个文件(比如说“链接”),看起来像这样:

From        To         Weight       Type
Patrick     Allan      30           witness1_driver
Allan       Steven     20           car_driver
....        ...        ...          ....

权重将根据关系类型确定(例如,witness1_driver => weight = 30) 非常感谢任何帮助。

非常感谢!! :)

【问题讨论】:

  • 不清楚你在问什么。就nodes.csv 而言,Person 的 Type 来自哪里,或者您是否试图派生它? NA是什么意思?它们应该保留在网络中还是丢弃?
  • 这个人的Type来自mydata的列名。我设法得到了这个文件。我的问题实际上是获取“links.csv”。非常感谢@emilliman5

标签: r dataframe igraph


【解决方案1】:

我认为你只需要融化mydata。这是一种选择:

melt(mydata, id.vars = "Driver", varying=names(mydata)[-1])

# Driver        variable     value
# 1:  Allan Insurance_taker    Steven
# 2:    Ana Insurance_taker Anastasia
# 3:  Allan   Counterparty1        NA
# 4:    Ana   Counterparty1       Max
# 5:  Allan   Counterparty2   Patrick
# 6:    Ana   Counterparty2    Pierre
# 7:  Allan   Counterparty3   Olivier
# 8:    Ana   Counterparty3      Jack
# 9:  Allan   Counterparty4      Jean
# 10:    Ana   Counterparty4       Sam
# 11:  Allan   Counterparty5   William
# 12:    Ana   Counterparty5        NA

【讨论】:

  • 是的!非常感谢。但是,我收到错误“警告消息:度量变量的属性不相同;它们将被删除”。不知道是什么意思
  • 我怀疑您列中的某些数据在各组之间并不相同,因此被删除了。如果您可以发布dput(head(mydata)),我们可以弄清楚发生了什么。
  • 对于迟到的答复,我深表歉意。它似乎融化甚至不起作用,因为它在“价值”列中给了我 NA
  • 那是因为您在原始数据框中有 NA。我离开它们是因为你没有指定如何处理它们
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-19
  • 2021-11-30
  • 1970-01-01
  • 2017-04-27
  • 2013-11-26
  • 2019-07-06
相关资源
最近更新 更多