【问题标题】:Display only specific labels, using eigenvector centrality (igraph in R)仅显示特定标签,使用特征向量中心性(R 中的 igraph)
【发布时间】:2017-11-05 11:55:01
【问题描述】:

我正在使用 0.99.879 版和 1.0.1 版。

我的问题与Show only specific labels on network graph using igraph in R 非常相似。我已将我的后续问题作为评论发布在那里,但被要求提出一个新问题。

我还想只显示特定的顶点标签,如果您使用 中心函数,这可以正常工作。但是,我尝试使用 中心性,它显示以下错误

ifelse(evcent(g) > 0.1, V(g)$name, NA) 中的错误:(list) 对象 不能强制输入'double'


代码如下:

#random graph
library(igraph)

g <- graph( c("John", "Jim", "Jim", "Jack", "Jim", "Jack", "Brian", "John", "John", "Janis", "Janis", "Jennifer", "Justin", "John"), 
                   isolates=c("Jesse", "Brian") )
# works perfectly fine
par(mfrow=c(1,2), mar=c(0,0,1,0))
plot(g, vertex.size=9,
     vertex.label = ifelse(betweenness(g) > 0, V(g)$name, NA),
     edge.arrow.size=.5)
plot(g, vertex.size=9,
     vertex.label = ifelse(degree(g) > 0, V(g)$name, NA),
     edge.arrow.size=.5)
#does not work
plot(g, vertex.size=9,
     vertex.label = ifelse(evcent(g) > 0.01, V(g)$name, NA),
     edge.arrow.size=.5)
# I also tried this with no success
eig <- evcent(g)
par(mfrow=c(1,1), mar=c(0,0,1,0))
plot(g, vertex.size=9,
     vertex.label = ifelse(eig$vector > 0.1, V(g)$name, NA),
     edge.arrow.size=.5)


如何解决这个问题。这究竟是什么意思:

'输入双精度'

提前感谢您的帮助!

【问题讨论】:

    标签: rstudio igraph degree betweenness eigenvector hub r igraph social-networking sna


    【解决方案1】:

    查看帮助页面?evcent。它说:

    价值

    带有组件的命名列表:...

    你需要使用

    ifelse(evcent(g)$vector > 0.01,
    

    同样,使用hub_cent$vector

    【讨论】:

    • 感谢您的回答,但我想知道是否不是ifelse(evcent(g)$vector &gt; 0.4, V(g)$name, NA),因为我对节点的特征向量得分感兴趣?
    • 你是对的。它应该是向量 - 而不是值。我会更改答案,以免引起其他人的困惑。
    猜你喜欢
    • 2021-09-20
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多