我有一个名为igraph
的{{1}}对象,其中y
为顶点,inventor
为边。
每个patent
都有一个属性vertex
,指的是发明人的位置。
每个city
都有一个属性edge
,指的是发明人或公司的位置。
我想只选择至少有一位发明人位于X市的专利,并且该专利的至少一位发明人不在X市。
如果我运行以下脚本,我最终会获得专利,其中无的发明者居住在X市,但该公司位于那里:
h_city
如果按照MrFlick的建议运行以下脚本来回答另一个问题,我最终还会获得所有发明人都来自X市的专利:
city_x<-subgraph.edges(y, which(E(y)$h_city=="x"))
下面我举一个例子,也是由MrFlick为不同的答案制作的 - 我稍微改变了一下:
city_x<- subgraph.edges(y, E(y)[inc(V(y)[city=="x"])])
这会产生:
library(igraph)
y <- graph.atlas(711)
V(y)$name <- 1:7
V(y)$prop <- c(1,2,2,3,3,1,1)
V(y)$color <- ifelse(V(y)$prop>=3, "red","yellow")
使用此代码,我还在节点号4和5之间包含#4边,因为它们都有E(y)[inc(V(y)[prop>=3])]
#Edge sequence:
#[3] 4 -- 3
#[4] 5 -- 4
#[5] 6 -- 5
#[10] 5 -- 3
。我不想选择那个优势。至少有一个节点需要匹配标准,至少有一个节点不需要。
对于此示例:如何仅选择至少一个节点具有prop>=3
的边缘,但边缘上至少有一个节点事件不会。
修改:
我也试过(错误地,我敢打赌)将函数用作prop>=3
和neighbors
,但似乎都没有用:
incident
有什么建议吗?
非常感谢!