r - 将属性(性别)添加到边列表中的顶点

标签 r igraph

我有一个生殖对的边缘列表,如下:

male_ID=c(1,2,3,4,5), female_ID=c(6,7,8,9,10), a=cbind(male_ID, female_ID)

使用 Igraph,我根据数据生成了一个图表,以对完整的 df 进行绘制和运行一些分析:

g <- graph_from_data_frame(a)

我的问题是,我现在可以根据边缘列表中列出的列,为个体的性别添加一个属性(给顶点着色)吗?

最佳答案

您可以为图形对象分配组标签。

为了创建组向量“性别”,您的数据框表明男性和女性的数量一样多。 graph_from_data_frame() 将 mal_ID 和 Female_ID 列堆叠在一起,您可以使用 igraph::V(g) 进行检查。因此,您可以从该信息中导出群向量:


male_ID=c(1,2,3,4,5); female_ID=c(6,7,8,9,10); a=cbind(male_ID, female_ID)

#create graph object from dataframe
g <- igraph::graph_from_data_frame(a)

#investigate structure g
igraph::V(g)
#[1] 1  2  3  4  5  6  7  8  9  10

# create sex group vector
sex <- c(replicate(length(male_ID), "Male"), replicate(length(female_ID), "Female"))

#Check group values
print(igraph::V(g)$group)
# NULL

#assign groups
igraph::V(g)$group <- sex

#Check group values again
print(igraph::V(g)$group)
#[1] "Male"   "Male"   "Male"   "Male"   "Male"   "Female" "Female" "Female" "Female" "Female"

# I use visnetwork to visualise 
vis_g <- visNetwork::toVisNetworkData(g, idToLabel = TRUE) 

visNetwork::visNetwork(
  nodes = vis_g$nodes,
  edges = vis_g$edges
  )

关于r - 将属性(性别)添加到边列表中的顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63596618/

相关文章:

c# - REngine rengine = REngine.CreateInstance ("RDotNet", new[] { "-q"} 在第二次调用时进一步停止执行

r - 使用 iGraph 中的 ego 函数生成连接 Node 列表以通过函数进行解析

r - 如何使用 gml 格式文件将 igraph 边缘属性设置为字符串?

r - 标准化 igraph 中的边权重以进行绘图(边权重太厚)

c - 在 IGraph 中生成按端点的 Jaccard 索引排序的边列表

networking - 如何延长 igraph 网络图中的边 (layout=fruchterman.reingold)?

r - 简单R函数的语法错误(错误: unexpected '}' in “}” )

通过调整和交叉验证进行随机森林优化

r - 如何使用 hunspell 包在 R 中的列中建议正确的单词?

R:根据多个变量的值定义不同的模式