按顶点属性值过滤 igraph 对象
filter igraph object by vertex attribute value
mymatrix
是一个igraph对象(加权邻接矩阵):
> summary(mymatrix)
IGRAPH 14317c4 UNW- 810 8761 --
+ attr: name (v/c), year (v/n), bad (v/n), new (v/n), weight (e/n)
其中一个节点属性是year
:
> summary(V(mymatrix)$year)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1990 2011 2014 2013 2017 2019
newmatrix
是一个 igraph 对象,它只包含与给定年份关联的节点。如果 year
的值大于 2013,我想在绘图和分析之前从矩阵的行和列中删除节点。
我尝试在 dplyr 包中使用 filter()
并得到以下错误:
> newmatrix<-filter(mymatrix, V(mymatrix)$year<2013)
Error in UseMethod("filter_") :
no applicable method for 'filter_' applied to an object of class "igraph"
一个解决方法是首先修改我用来生成邻接矩阵的数据。但是我想知道是否有一种方法可以通过文档中没有找到的节点属性来过滤 igraph 对象。
看起来像
delete_vertices(mymatrix, V(mymatrix)$year >= 2013)
应该给出预期的图形。
mymatrix
是一个igraph对象(加权邻接矩阵):
> summary(mymatrix)
IGRAPH 14317c4 UNW- 810 8761 --
+ attr: name (v/c), year (v/n), bad (v/n), new (v/n), weight (e/n)
其中一个节点属性是year
:
> summary(V(mymatrix)$year)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1990 2011 2014 2013 2017 2019
newmatrix
是一个 igraph 对象,它只包含与给定年份关联的节点。如果 year
的值大于 2013,我想在绘图和分析之前从矩阵的行和列中删除节点。
我尝试在 dplyr 包中使用 filter()
并得到以下错误:
> newmatrix<-filter(mymatrix, V(mymatrix)$year<2013)
Error in UseMethod("filter_") :
no applicable method for 'filter_' applied to an object of class "igraph"
一个解决方法是首先修改我用来生成邻接矩阵的数据。但是我想知道是否有一种方法可以通过文档中没有找到的节点属性来过滤 igraph 对象。
看起来像
delete_vertices(mymatrix, V(mymatrix)$year >= 2013)
应该给出预期的图形。