【问题标题】:Turn NA's into self-loops in igraph [duplicate]在igraph中将NA变成自循环[重复]
【发布时间】:2018-07-24 04:45:43
【问题描述】:

我确实有一个针对几个“目标”有很多 NA 的定向网络。 原始数据框“df2_net”看起来像...

from      to    Attribute
<int>    <int>    <int>
 5       NA    12120
 6       NA    12210
 3       NA    12300
 6       NA    12310
 5       6     12310
 3       5     12310

如果我以直接的方式生成网络:

g <- graph.data.frame(df2_net, directed = T)

我收到错误:In graph.data.frame(df2_net, directed = T) : In d' NA' elements were replaced with string "NA"

我不想只是收拾东西 (df2_net_clean &lt;- na.omit(df2_net))

我宁愿将 NA 作为“from”变量的一种自循环。

【问题讨论】:

  • 为什么不直接用from 列中的值覆盖NA 值? df2_net[is.na(df2_net$to)]$to &lt;- df2_net$from ?
  • 感谢您的建议!现在我确实得到了错误:[Error in (*tmp*`, is.na(df2_net$to), value = c(5L, : duplicate subscripts for columns]
  • 我在建议之前没有测试我的代码,只是想给你一个大致的方向。似乎@divibisan 已经采取了额外的步骤,使其成为一段工作代码:)

标签: r igraph


【解决方案1】:

感谢@Merik 提供的建议,您只需将to 的值替换为from 的值,用于to 为NA 的所有行:

df2_net[is.na(df2_net $to), 'to'] <- df2_net[is.na(df2_net$to), 'from']

【讨论】:

    猜你喜欢
    • 2021-08-10
    • 2021-07-30
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    相关资源
    最近更新 更多