ノードリストのネットワークネイバーのデータセットを作成しようとしています。私は、私がneighborコマンドを使用するlapply関数でこれを行うことができます。追加の合併症として、私のルックアップノードのいくつかはグラフにはありませんが、それに関係なく動作させることはできません。ここでigraphの近傍をルックアップする機能があります(すべてのノードが見つからない場合)
は一例です。
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)
neighbors<- lapply(testlist2, function(p) { #Each pledge_id
temp=neighbors(graph,p) #Find all the neighbors for that pledge
return(temp)
})
neighbors<- lapply(testlist, function(p) { #Each pledge_id
temp=neighbors(graph,p) #Find all the neighbors for that pledge
return(temp)
})
残念ながら、これは両方のケースでナンセンスを返します。私は何が欠けていますか?
私の所望の出力は、このようなものになるだろう:
lookupnode neighbor
A B
H .
C D
C F
D E
J .
私はどこかに一時= data.table :: rbindlist(TEMP)コマンドを追加する必要があり、最終的に知っているが、私は思いませんホグウォッシュを引き起こしている。あなたはread.table
機能を持つdata.frame
を作成し、それを各ベクトルを反復処理だとdata.frame
lapply
にして渡していることを
あなたがこれは素晴らしいです、むしろ 'sapply' – MrFlick
よりもdata.frameの内側'隣人= NB $ NAME'を使用することができます!もちろん、それはデータフレームです。うわー。また、 '%%V(グラフ)$ name'のx%はキーであり、このプロジェクトのどこか別の場所で役に立ちます。ありがとう! – Danielle
これは第1度近傍(これは私が尋ねたものです)と非常にうまく動作しますが、 'ego'関数' ego(graph、2、x) 'で代用すると、クラス" igraph.vs "を持つ1のリストを返します。 (lookupnode = x、neighbor = nb $ name、stringsAsFactors = FALSE): 引数は異なる行数を意味します:1、0 "これをdata.frameに変換することはできません。あなたはその場合どのように修正しますか? – Danielle