0
ここでは、ネットワークノードのリストのネイバーをルックアップする方法に関するいくつかの優れたアドバイスがあります。以下を参照してください:lapply function to look up neighbors in igraph (when not all nodes are found)lapplyとigraphを使用して2次近傍のリストを生成
今、私は第二度の隣人で同じことをする必要があります。ただし、このループにego
またはneighborhood
のいずれかの機能を代入するとエラーが発生します。 data.frameで
edgelist <- read.table(text = "
A B
B C
C D
D E
C F
F G")
testlist <- read.table(text = "
A
H
C
D
J")
testlist2 <- read.table(text = "
A
C
B
D
E")
library(igraph)
graph <- graph.data.frame(edgelist)
str(graph)
get_neighbors <- function(graph, n) {
do.call(rbind, lapply(n, function(x) {
if (x %in% V(graph)$name) {
nb <- neighborhood(graph,2, x) ##HERE##
if (length(nb) > 0) {
data.frame(lookupnode=x,
neighbor=nb$name, # h/t @MrFlick for this shortcut
stringsAsFactors=FALSE)
} else {
data.frame(lookupnode=x, neighbor=NA, stringsAsFactors=FALSE)
}
} else {
data.frame(lookupnode=x, neighbor=NA, stringsAsFactors=FALSE)
}
}))
}
A=get_neighbors(graph, as.character(testlist$V1))
はエラー(lookupnode = xで、隣人= NBの$名、stringsAsFactors = FALSE):引数は、行の異なる数を意味するもの:1、0
を私は問題はそのエゴで収集し、近傍を直接データフレームに強制することはできません。 unlist
を使用してデータフレームに入れることができますが、値をrow.names
として出力することができます。
2次近傍の出力を作成するにはどうすればよいですか?
魅力的な作品です。 'row.names'を引き出すために' names'を追加する必要がありました。 – Danielle