问题标签 [edge-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
107 浏览

r - 为(900+)个节点创建边缘列表(在 R 中)

我在创建 406351 个边的边列表时遇到问题(902 个唯一节点中的两个节点的可能组合)。节点对应医生,边对应两个节点在一段时间(一年)内共享的患者数量。

我有医疗索赔数据,其中一项观察是一名患者对特定医生的一次访问。

到目前为止,对我有用的是:首先,将医生与患者的 ID 对照,获取每位患者与每位医生的就诊次数。之后,我获取了唯一医生 ID 的列表,并创建了一个包含所有可能的 2 个元素组合的边列表。最后,我用一个 for 循环“填充”了边缘列表,该循环查看表中列(医生)的每个组合,并计算有多少特定患者的访问量 > 0 对于两列(医生)。

这可行,但我的问题是循环太慢了,我想知道是否有更快的方法来做到这一点。

到目前为止,这是我的方法的一个示例:

0 投票
1 回答
136 浏览

r - 如何在使用 R 保持原始行顺序的同时按行提取唯一和双记录?

原始(见下面的更新)

我是 R 的新手,目前以边缘列表的形式处理协作数据,该列表具有 32 列和大约 200.000 行,如下所示:

A、B、C 代表出版物中参与研究机构的国家。在真实数据集中,“A”是例如一个国家名称,例如“England”或“China”。

我想保留唯一记录 (A) 和双重记录 (AA),但删除三元组 (AAA) 和更多连续出现的同一记录。协作按 ID 分配给出版物,因此顺序应保持不变,以便以后进行分析。但是,行内的顺序无关紧要。

所以,它最终应该是这样的。

到目前为止,我已经尝试了一些基于123triplicated来自tuple package的东西。

但是,我使用dt[!(triplicated(dt) | triplicated(dt, fromLast= TRUE)), ]而不是仅删除逐行显示盈余的特定记录来删除完整的行,这导致我进入以下 4x4 表...

我还查看了此处此处dplyr的响应,但到目前为止还没有找到合适的方法。

原始问题描述的工作解决方案

编辑1:为澄清而调整的描述:在真实数据集中,“A”是例如国家名称,如“英格兰”或“中国”。

Edit2:添加一个更准确的可重现示例。

更新

添加了一个更准确的可重现示例,并结合了原始问题描述的正确答案(见下文):

期望的结果

0 投票
1 回答
303 浏览

r - 为 R 中的读取计数矩阵生成行名称的问题

我正在按照本教程在线分析细胞类型之间的 RNA-seq 数据。

https://combine-australia.github.io/RNAseq-R/06-rnaseq-day1.html

我已经能够使用我自己的数据执行其中的大部分操作,但我现在正在尝试执行通路富集分析。但是,我遇到了问题,因为我无法将初始读取计数矩阵的行标记为基因 ID。

我试图简单地使用基因 ID 创建一个新列,但是这会将矩阵更改为数据框并阻止我使用 DGEList。

seqdata 是我的 data.frame,其中包含来自分析的基因的所有信息,第 1 列作为基因 ID 名称,第 15 到 24 列作为向量,其中包含 10 个样本中每个基因的读取计数信息。

我从这个 data.frame 生成了一个名为 readcounts_g 的矩阵,它只有每个基因的读取计数,但我试图分配行名,在其中我从 seqdata 中获取第 1 列并使用此向量中的基因名称来分配readcounts_g 数据帧的行名。

我也曾想过将基因名称作为附加向量简单地输入到 readcounts_g 中,但如果我这样做了,我就不能使用 DEGList,因为它需要一个矩阵。

最终,我尝试使用 goana 对差异表达的基因进行富集途径分析。但是,如果没有将基因名称分配给最终的 DEG 矩阵,我将无法做到这一点。

如果有人对我如何解决这个问题有见解,将不胜感激。如果需要,我可以尝试进一步解释。

0 投票
1 回答
150 浏览

r - 在 R 中转换为 Edgelist 时保留顶点名称

我正在尝试将社会矩阵(使用 r 中的 sna 包)转换为边缘列表,但保留顶点名称。不幸的是,我似乎走到了死胡同。

对于上下文,我使用的是 sna 包,因为我需要对数据进行对称化,这是我在将其放入 edgelist 格式之前所做的。本质上,我需要获取一个网络矩阵,对其进行对称化,将其转换为边缘列表,然后将其写入 .csv。将其转换为边缘列表的步骤是我遇到问题的地方。这是我遇到的一个例子:

当我这样做时,这就是我得到的:

当我真正想要的是名称(“153”、“154”、“155”、“156”、“157”、“158”)而不是 1-6 时。

(运行代码时实际的矩阵/边列表会有所不同,因为图形是随机生成的,但它应该做同样的事情)

你对我需要做些什么来完成这项工作有什么建议吗?我过去使用过 network 和 igraph 包,但是当我将 socialmatrix 转换为图形/网络对象并尝试使用其他包转换为 edgelist 时,我得到了其他不同的错误(无法传递“n”参数)。

0 投票
1 回答
262 浏览

r - 从数据框创建边缘列表

我正在尝试从包含匹配事件的数据框中创建一个边缘列表。数据框的每一行都是对敌方玩家的击杀。Playerid列表示杀死的人。Assists 指示在此特定杀戮中协助的人。ID 1-5 属于团队 1,6-10 属于团队 2。第一列包含 rowID。

我需要的是把它转换成一个边缘列表,然后再转换成一个有向网络,这样我就可以计算入度、出度等。更重要的是,我需要知道每个玩家之间有多少次互动,但这应该能够在一个有价值的定向网络中看到。但是,我在将其转换为边缘列表时遇到了问题。我尝试在网上寻找解决方案,但找不到类似的转换为边缘列表的数据集。如果有人可以帮助我,我将不胜感激。

0 投票
2 回答
36 浏览

python - 向 .txt 文件的每一行添加(非重复)随机数

我正在创建一个 .txt 文件,该文件中有四名士兵在一个团队中按功绩排序。士兵不给自己排名。

我有以下代码:

在 .txt 文件中生成以下输出:

对于每组三行(以相同开头的行组soldier),我想添加一个随机排名,该排名来自possRanks,其中possRanks = [1, 2, 3]。问题是我不能完全随机化它,因为那样排名可能会重复。例如,soldier1可能同时排名soldier2soldier3排名为1,这是我无法拥有的。

正确的示例输出如下:

在这里,用 的值、用 的值和用 的值进行soldier1排名。soldier23soldier31soldier42

0 投票
2 回答
642 浏览

r - 如何将加权边缘列表转换为r中的邻接矩阵

我有一个加权边缘列表,我想将其转换为邻接矩阵。是否有一个简单的代码可以用来执行此操作?

数据如下所示:

这是复制代码:

0 投票
1 回答
363 浏览

r - 具有孤立顶点/节点的归一化度中心性度量(r igraph)

我对网络分析很陌生。我想用 R 计算归一化中心性度量(度、介数和特征向量)。我创建了以下边列表,其中 ID1 和 ID2 都是投资者。如果 ID1 和 ID2 都填充,投资者共同投资,否则,投资者单独投资(即孤立节点):

为了计算归一化度中心性,我使用以下代码:

如您所见,Warning message出现:它将NA视为一个单独的投资者(它将NA变成一个字符串)。我保持孤立投资者的原因是标准化需要将原始程度度量(使用连接的节点/投资者计算的)除以任何投资者可能投资的投资者的可能数量(即所有可能的投资者,计算那些投资的投资者)独自的)。

关于如何规避此类问题的任何建议?我尝试使用邻接矩阵,但也无法弄清楚......

非常感谢!

0 投票
2 回答
239 浏览

r - 计算数千个小型网络的网络密度

我有一个包含数千个小型无向网络的边缘列表的文本文件。每个网络大约有 500 到 5,000 条边。我想做的是为每个计算一些基本的网络统计数据(例如,密度、模块化、网络直径等)。我知道如何一次计算一个图表的这些统计数据,但我不知道如何处理这样做了 20,000 多次。

你们中的任何人以前做过这样的事情吗?下面是我的数据的示例。我从三列的数据框开始:Group、node1、node2。例如,您将如何使用 iGraph 计算每个组的网络密度?

0 投票
1 回答
59 浏览

r - 边列表网络图 R

我坚持在 R 上绘制图表。特别是,我想制作一个网络图 一

但是使用另一种颜色的中心节点和其他节点的大小与数据集中的列权重一样大。数据集如下:

我目前使用的代码如下:

任何人都可以帮我解决这个问题吗?我将不胜感激。