Я использую rstudio версии 0.99.879 и igraph версии 1.0.1.
Мой вопрос очень похож на Показывать только определенные метки на сетевом графе с помощью igraph в R. Я разместил свой дополнительный вопрос по этому поводу в качестве комментария, но меня попросили открыть новый вопрос.
Я также хочу отображать только определенные метки вершин, и это отлично работает, если вы используете тег степень или промежуточность функция центральности . Однако я попробовал это с помощью eigenvector или hub, и отобразится следующая ошибка
Ошибка в 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)
Как это исправить. Что именно это означает:
'тип двойной'
Заранее благодарю за любую помощь!