从数据帧格式化 igraph 饼图顶点值

Posted

技术标签:

【中文标题】从数据帧格式化 igraph 饼图顶点值【英文标题】:Formatting igraph pie vertex values from dataframe 【发布时间】:2022-01-07 09:03:33 【问题描述】:

对于使用 igraph 进行网络分析,我正在尝试设置我的顶点元数据,以便有数字向量可用于根据我的数据帧中列的不同组合制作饼图顶点。

用这个例子来说明我的数据设置:

df <- data.frame(vName=c('Joe','Rose','Matt','Val'), Red=c(2.5, 1, 1, 0.9), Blue=c(3, 3, 1, 1), Yellow=c(2.9, 2.1, 3.2, 1.1))
df
#   vName Red Blue Yellow
# 1   Joe 2.5    3    2.9
# 2  Rose 1.0    3    2.1
# 3  Matt 1.0    1    3.2
# 4   Val 0.9    1    1.1

通过组合来自特定列的数据,将向量组装为每一行的列的最佳方法是什么?前任。新列 RedBlue 将返回向量值,如下所示:

df
#   vName Red Blue Yellow   RedBlue
# 1   Joe 2.5    3    2.9  2.5, 3.0
# 2  Rose 1.0    3    2.1  1.0, 3.0
# 3  Matt 1.0    1    3.2  1.0, 1.0
# 4   Val 0.9    1    1.1  0.9, 1.0

df$RedBlue
#[[1]]
#[1] 2.5 3.0

#[[2]]
#[2] 1.0 3.0

#[[3]]
#[3] 1.0 1.0

#[[4]]
#[4] 0.9 1.0

或者在使用顶点元数据在 igraph 中构建饼图顶点的上下文中,是否有另一种更有意义的方法?

非常感谢!

【问题讨论】:

【参考方案1】:

你可以试试

df <- transform(
  df,
  RedBlue = asplit(cbind(Red, Blue), 1)
)

你会看到

> df$RedBlue   
[[1]]
 Red Blue
 2.5  3.0

[[2]]
 Red Blue
   1    3

[[3]]
 Red Blue
   1    1

[[4]]
 Red Blue
 0.9  1.0

> df
  vName Red Blue Yellow  RedBlue
1   Joe 2.5    3    2.9 2.5, 3.0
2  Rose 1.0    3    2.1     1, 3
3  Matt 1.0    1    3.2     1, 1
4   Val 0.9    1    1.1 0.9, 1.0

【讨论】:

以上是关于从数据帧格式化 igraph 饼图顶点值的主要内容,如果未能解决你的问题,请参考以下文章

使用igraph查找连接到顶点的所有顶点?

如何将值向量分配给R中igraph中的顶点标签?

IGraph:直到停止节点/顶点的网络距离

如何根据 igraph 中顶点的邻居属性创建顶点属性?

python中将edgelist导入igraph的格式

我可以为igraph中的根/终端顶点之间的edgelist属性创建单独的数据框吗? (R)