Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
igraph对象的顶点/节点属性_R_Igraph - Fatal编程技术网

igraph对象的顶点/节点属性

igraph对象的顶点/节点属性,r,igraph,R,Igraph,我正在使用igraph中的网络分析数据 下面是一个数据帧示例 df_edgelist=structure(list(Nominator = structure(c(6L, 4L, 7L, 8L, 1L, 2L, 3L, 5L), .Label = c("Andrea", "Dan", "Dan", "Greg", "Jerry", "Jim", "Rachel", "Sarah"), class = "factor"), Nominee = structure(c(5L, 2L, 8L,

我正在使用igraph中的网络分析数据 下面是一个数据帧示例

df_edgelist=structure(list(Nominator = structure(c(6L, 4L, 7L, 8L, 1L, 2L, 
3L, 5L), .Label = c("Andrea", "Dan", "Dan", "Greg", "Jerry", 
"Jim", "Rachel", "Sarah"), class = "factor"), Nominee = structure(c(5L, 
2L, 8L, 1L, 7L, 3L, 6L, 4L), .Label = c("Andrea", "Dan", "Greg", 
"Jeff", "Jerry", "Jerry", "Sarah", "Tim"), class = "factor"), 
    Age_Nominator = c(24L, 25L, 29L, 45L, 43L, 67L, 67L, 45L)), class = "data.frame", row.names = c(NA, 
-8L))

从文档中,我得到的印象是,如果我还提供另一个数据帧,并在
graph\u From\u dataframe
Vertexs
参数中设置该数据帧的名称,那么
graph\u From\u dataframe
函数将把第三列
年龄\u命名者
视为顶点属性。这是正确的还是
df\u edgelist
中的第3列仍然是一个边属性?

来自数据帧的
graph\u中感兴趣的两个参数是
d
顶点
。如注释中所述,
d
中的额外列将是边属性,而
顶点
中的额外列(第一列是顶点名称)将是顶点属性

此外

如果
顶点
不是
NULL
,则检查
d
中给出的符号边列表,以仅包含
顶点
中列出的顶点名称

表示
d
的前两列不能提及
顶点中不存在的任何顶点。另一方面,如果
顶点
有一些额外的顶点,则不会引起任何问题,它们将被隔离

比如说,

df_vertices <- data.frame(someNames = c("NewName", as.character(unique(unlist(df_edgelist[, 1:2])))))
df_vertices$Age <- 20 + 1:nrow(df_vertices)
df_vertices
#    someNames Age
# 1    NewName  21
# 2        Jim  22
# 3       Greg  23
# 4     Rachel  24
# 5      Sarah  25
# 6     Andrea  26
# 7        Dan  27
# 8      Jerry  28
# 9        Tim  29
# 10      Jeff  30
正如所料。如果要避免这些孤立的顶点,可以指定为
顶点

df_vertices[df_vertices$someNames %in% as.character(unique(unlist(df_edgelist[, 1:2]))), ]
#    someNames Age
# 2        Jim  22
# 3       Greg  23
# 4     Rachel  24
# 5      Sarah  25
# 6     Andrea  26
# 7        Dan  27
# 8      Jerry  28
# 9        Tim  29
# 10      Jeff  30

变量
Age\u Nominator
具有与边相对应的值。例如,在data.frame的第一行中,24是否适用于Jim或Jerry?默认情况下,Igraph将此作为边属性加载。如果要将其作为顶点属性,则需要创建一个data.frame,其中每个命名顶点对应一个属性值。好的,这更有意义,但不确定,因为文档有点混乱。因此,当我加载顶点属性dataframe时,如果我加载的dataframe具有未包含在sepcific edgelist中的额外名称,这有关系吗?我正在使用多个不同的edgelists,但每个edgelist中都有一个数据帧,其中包含所有顶点的属性,我只想使用该数据帧,而不是拆分它。您可以看看这个问题吗?是否可以在igraph中添加节点权重?图聚类算法是否可以使用节点权重(而不是边权重)?
df_vertices[df_vertices$someNames %in% as.character(unique(unlist(df_edgelist[, 1:2]))), ]
#    someNames Age
# 2        Jim  22
# 3       Greg  23
# 4     Rachel  24
# 5      Sarah  25
# 6     Andrea  26
# 7        Dan  27
# 8      Jerry  28
# 9        Tim  29
# 10      Jeff  30