r - 如何删除 NA(空)顶点
问题描述
我正在使用igraph
包制作(无向)社交网络图,我已经使用我的数据子集进行了练习。为此,顶点必须位于两列中,这样所有关联都会显示出来。但是有时会单独遇到一个顶点(个人,我正在与动物一起工作),没有关联。所以这个动物将在左列,而在右列没有任何东西,一个空单元格。
然而,在igraph
包中,R 认为“NA”/nothing 是一个动物 ID,因此它从中生成了一个顶点。在我的子集中,我已经像这样解决了这个问题:
y <- data.frame(data$ID1, data$ID2)
ID1 和 2 是来自坑标签阅读器的代码,用于识别个体动物。它基本上是他们的名字。
graph.data.frame(y, directed=FALSE)
我称这个图为:net
net <- graph.data.frame(y, directed=FALSE)
net <- delete_vertices(net, "")
因此,在上面显示的代码中,填充了 nog 动物 ID 的空值将从图中删除。我很高兴我做到了这一点,但正如我所说,它是我已经手动编辑过的数据的一个子集。
对于整个数据集,我不得不整理数据。因为动物是在更大的群体中观察的,所以我有 8 个带有动物 ID 的列,它们都关联在一起。这必须改造成两列,其中涵盖了单个位置上的所有可能排列(因此对于一组 4 只动物,我需要组合 1-2;1-3;1-4;2-3;2-4和 3-4 组,从 1 到 8 只动物(顶点)不等。我已经用tidyr
anddplyr
包(和帮助)做到了这一点。当其中一列没有值时(因为它本身就是一个个体)R 说:
Warning messages: 1: In graph.data.frame(y, directed = FALSE) : In `d' `NA' elements were replaced with string "NA" 2: In `[<-.factor`(`*tmp*`, thisvar, value = "NA") : invalid factor level, NA generated
因此,在我看来,它将空白空间替换为NA
,这也是它告诉 R 显示新的争吵数据时所显示的内容。但是删除顶点的技巧不再起作用。它一直在说"invalid vertex name"
。""
我用, with "NA"
,和所有我能想到的合乎逻辑的东西都试过了NA
,"<NA>"
但我似乎无法解决这个问题。
我希望它是一个错误,可以通过不同的“或”或其他东西轻松解决。有人有什么想法吗?
解决方案
推荐阅读
- vips - 如果我的源文件和目标文件在 vips 中相同,则会出错
- string - 将 System.Object[]' 转换为类型 'System.String
- mysql - SQLSTATE[HY000] [2002] 无法分配请求的地址:如何增加限制
- java - 打印 ABC 的问题...和 Java 中的数字
- c# - Entity Framework Core 添加到 .Net Core Web Api - IRelationalTypeMappingSource 问题
- ios - 如何仅在 iOS 应用程序中处理来自子域的通用链接?
- angular - 如何使用带角度的传单打开街道地图将标记图标从一个纬度、经度移动到另一个(从 API 获取)
- path - Jmespath计算平均值
- javascript - 从多边形获取 GeoJSON
- python - 基于两个不同的数据框创建新的数据框