r - 将属性(性别)添加到边缘列表中的顶点
问题描述
我有一个生殖对的边缘列表,如下所示:
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
)
推荐阅读
- documentum - IAPI 文档查询的日期格式
- spring-boot - 如何自定义@PreAuthorize("isAuthenticated()") 返回的http状态?
- php - Azure Active Directory B2C - 用于登录/注册和密码重置的用户流(策略)
- ruby - 将域范围委派与 Google API 一起使用时出现未经授权的客户端错误
- typescript - 在ionic3中搜索数据后原始数组值发生变化?
- android - 为根项目构建模型“java.lang.Void”?
- python - SWIG“out”类型映射返回地址而不是数据
- python - 计算字典python中键的相同值的出现
- javascript - 如何在 Django 中从 Javascript 访问 Ajax POST 请求
- javascript - 为什么这个表单即使验证失败也会继续提交?