动态查询顶点属性值,而无需使用R

我是igraph的新手,并且在文档方面有些挣扎。我正在尝试动态查询顶点属性的值(而不必对属性名称进行硬编码)。我需要使用属性名称(而不是索引)一个一个地获取每个属性,而不使用邻接矩阵。

require(igraph)
graph <- make_ring(9)  #this is my original graph
V(graph)$name <- c("A","B","C","D","E","F","G","H","I")  #name of vertices
V(graph)$att1 <- c(1,1,0)
V(graph)$att2 <- c(0,3,1)
V(graph)$att3 <- c(0,4,0)
V(graph)$att4 <- c(1,2,0)
node1 <- V(graph)[1]
node1$att1 # how do I do this without having to hardcode the name of the attribute?

说我正在使用一个for循环来查询node1选定属性的值:

selected_att <- c("att1","att3")
for (i in selected_att)
{
   node1$i  #--> how do I get the value of attribute i for node1?
}

为了提供更多的上下文,我试图使用内部和内部耦合的属性相似度来计算两个节点之间的整体相似度,从而计算图中每个节点之间的节点相似度。使用邻接矩阵是查询每对节点的属性值以计算其整体属性耦合相似度的最有效方法吗?我的图相当大,所以我试图避免建立邻接矩阵。结果将是一个相似矩阵(在每对节点之间)。

h00309110 回答:动态查询顶点属性值,而无需使用R

您不能在右边的变量中使用$。您可以使用更通用的vertex_attr函数。例如,您可以

selected_att <- c("att1","att3")
for (i in selected_att)
{
   print(vertex_attr(graph,i,node1))
}
本文链接:https://www.f2er.com/3162460.html

大家都在问