有哪些方法可以转换会话路径数据,例如:
df
# Session Link1 Link2 Link3 Link4 Link5
# 1 1 A B
# 2 2 C
# 3 3 D A B
# 4 4 C F G H J
# 5 5 A B C
Run Code Online (Sandbox Code Playgroud)
进入如下所示的数据集:
desired
# Session From To
# 1 1 A B
# 2 2 C <NA>
# 3 3 D A
# 4 3 A B
# 5 4 C F
# 6 4 F G
# 7 4 G H
# …Run Code Online (Sandbox Code Playgroud) 我仔细阅读了文档,但我仍然不清楚如何使用 G.forEdges(),它被描述为“实验边缘迭代器接口”。
假设我想降低图形的密度。我有一个排序的权重列表,我想根据它们的权重删除边,直到图分成两个连接的组件。然后我将选择保持图形连接的最少链接数。我会做这样的事情:
cc = components.ConnectedComponents(G).run()
while cc.numberOfComponents()==1:
for weight in weightlist:
for (u,v) in G.edges():
if G.weight(u,v)==weight:
G=G.removeEdge(u,v)
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我从文档中知道有这个边缘迭代器,它可能以更有效的方式进行迭代。但是从文档中我真的无法理解如何正确使用 this forEdges,并且我无法在互联网上找到一个示例。有任何想法吗?
或者也许是做我想做的事情的另一种想法:因为它是一个巨大的图(1.25 亿个链接),即使我在一个集群上工作,迭代也将永远持续下去。
我正在尝试将数据框从在线论坛转换为社交网络,但是我不知道如何将数据转换为网络分析所需的邻接矩阵/边列表。
我的代码如下:
library(igraph)
graph.data.2002 <- as.matrix(data.2002[,2:3])
g.2002 <- graph.data.frame(graph.data.2002, directed=FALSE)
plot(g.2002, vertex.size = 1, vertex.label=NA)
Run Code Online (Sandbox Code Playgroud)
我正在使用 R 进行分析。目前的问题是作者之间是通过ThreadID联系起来的,但是在进行网络分析时,它包含了ThreadID作为一个节点。理想情况下,我想要一个邻接矩阵/边缘列表,如果作者与同一线程上的所有作者交互,则显示 1。
(第一次发帖,如果有什么遗漏/不正确的地方,请告诉我)
目前数据如下:
ThreadID AuthorID
659289 193537
432269 136196
572531 170305
230003 32359
459059 47875
635953 181593
235116 51993
Run Code Online (Sandbox Code Playgroud) 我正在使用HITS算法进行社交网络分析.该算法的使用产生两种不同的度量:hub-score和authority-score.生成一个包含两个基于这些度量的字典的列表,其中一个字典的索引为0,另一个字典的索引为0.
如何删除总体列表以获取两个单独的词典?代码和输出如下:
G = nx.read_weighted_edgelist('data.csv', create_using=nx.DiGraph())
HITS_scores = list(nx.hits(G))
Output:
List = Index Type Value
0 dict {'node1': 0.023, 'node3': 0.017.....'node17': 0.045}
1 dict {'node2': 0.042, 'node4': 0.002.....'node16': 0.032}
Desired Output:
hub_score = dict {'node1': 0.023, 'node3': 0.017.....'node17': 0.045}
auth_score = dict {'node2': 0.042, 'node4': 0.002.....'node16': 0.032}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
PS我试过寻找答案,但一直无法找到解决方案
在执行网络分析时,我想在地图上绘制网络图。ggmap 似乎是首选,但它需要 API 访问。
是否有任何不需要 API 访问的免费和等效/替代(到 ggmap)选项?
谢谢你。
我有两个数据帧.一个是我的facebook朋友的名字,另一个是与sorce和目标列的链接.我想根据friends数据帧中该名称的行索引将链接数据框中的名称转换为数字.
朋友
name
1 Andrewt Thomas
2 Robbie McCord
3 Mohammad Mojadidi
4 Andrew John
5 Professor Owk
6 Joseph Charles
Run Code Online (Sandbox Code Playgroud)
链接
source target
1 Andrewt Thomas Andrew John
2 Andrewt Thomas James Zou
3 Robbie McCord Bz Benz
4 Robbie McCord Yousef AL-alawi
5 Robbie McCord Sherhan Asimov
6 Robbie McCord Aigerim Aig
Run Code Online (Sandbox Code Playgroud)
看似琐碎,但我无法弄明白.感谢帮助.
我有一个如下所示的数组哈希:
my %HoA = (
"M" => [ "L", "E" ],
"L" => [ "I" ],
"E" => [ "B", "C" ],
"B" => [ "A" ],
"C" => [ "A" ]
);
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式将其可视化:
M
/ \
L E
/ / \
I B C
\ /
A
Run Code Online (Sandbox Code Playgroud)
现在,我想知道每个节点的连接数:
M 6
E 3
L 1
B 1
C 1
I 0
A 0
Run Code Online (Sandbox Code Playgroud)
使用R中的igraph包这很简单,但我很难用Perl中的数组哈希做同样的事情.
我正在尝试学习网络分析,因此我正在在线使用 Hillary Clinton\xe2\x80\x99s 电子邮件来查看谁给谁发了电子邮件。
\n\n我的数据位于名为 hrc_dict 的字典中。我有一个发送者和接收者的元组,后面是电子邮件的频率。这是字典的一部分:
\n\n\n\n\n{(“希拉里·克林顿”,“谢丽尔·米尔斯”):354,(“希拉里·克林顿”,“l”):1,(“琳达·德万”,“希拉里·克林顿”):1,(“希拉里·克林顿”,“卡普里西亚”马歇尔”):9,(“菲利普·克劳利”,“希拉里·克林顿”):2,(“谢丽尔·米尔斯”,“安妮·玛丽·斯劳特”):1}
\n
我正在 Jupyter 中使用 Networkx 创建图表。我的代码如下:
\n\nimport networkx as nx\nimport matplotlib.pyplot as plt\n\nG = nx.Graph()\n\nG.add_nodes_from(hrc_dict)\n\nfor s, r in hrc_dict:\n G.add_edge((s,r), hrc_dict[(s,r)])\n\nG.add_edge((s,r), hrc_dict[(s,r)])\nRun Code Online (Sandbox Code Playgroud)\n\n当我调用 nx.Graph() 时,没有任何内容打印出来,当我调用 G.nodes() 时,并非所有节点都显示出来。我在这里粘贴了一些输出:
\n\n\n\n\n[1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n '马克·佩恩',\n 10,\n ('托德·斯特恩', '希拉里·克林顿'),\n 12,]
\n
当我调用 G.edges() 时,我得到以下内容,这似乎是正确的
\n\n\n\n\n[(1,('希拉里·克林顿','l')),(1,('琳达·德万','希拉里·克林顿')),(1,('希拉里·克林顿','托马斯·香农')),(1 , ('谢丽尔·米尔斯', '安妮·玛丽·斯劳特')), (1, ('克里斯托弗·巴兹吉', '希拉里·克林顿\xe2\x80\x99))]
\n
有谁知道如何将节点正确添加到我的图表中。我假设每个人都需要成为一个节点,那么如何分解元组并分别添加名称?边缘显示正确还是我需要以不同的方式输入它们?
\n