gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 09:00:04 28 4
gpt4 key购买 nike

我有一个生殖对的边缘列表如下: 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com