2017-07-02 10 views
0

Rを使用してiGraphパッケージを操作する際に問題があります。特に、2度の分離ですべてのノードを取得しようとしています。与えられたノードからそのリストを使用して、関数を介していくつかの操作を実行します。iGraphのego関数を使用して、接続されたノードのリストを生成して関数を解析します。

iGraph.vsクラスの他に、Rのリストの仕組みに自信がありません。

理想的には、第2度Listnode_test <- (ego(Graph1, 2, "accumsan"))egoを使用して頂点のリストを生成したいと考えています。これはListnode_testを返します。ここでは出力があります:

structure(list(structure(c(1L, 3L, 5L, 9L, 10L, 11L, 16L, 24L, 1 c(1, 3, 5, 9, 10, 11, 16, 24, 32, 59, 64, 2, 4, 6, 14, 15, 1

問題は、私は私はこのような機能を介してそれらを実行できるように、それは... "node1, node2, node3"などを言うだけのリストに理想的なノードのリストを返したいということです。

for (i in 1:length(Listnode_test[[1]])) 
{ 
    Perspective <- 1 
    Listnode <- neighborhood.size(Graph1, 1, Listnode_test[[1]][i], mode="in") 
    ##a save script either to a DF or global env 
} 

基本的には、ノードを取得して、X度の範囲内でノードに接続したいすべてのノードのリストを取得します。私はこのリストを生成した後、提供されたリストの各ノードのin-degreeを計算する関数にそれを送りたいと思っています。

ご協力いただければ幸いです。

> vertices from to query 1 accumsan a Benefit 2 nonummy a Benefit 3 mollis a Benefit 4 velit a Benefit 5 et a Benefit 6 vulputate a Benefit 7 magna a Benefit 8 et a Risk 9 feugiat ac Benefit 10 feugiat ac Sequential 11 mollis accumsan Benefit 12 a accumsan Benefit 13 mauris accumsan Benefit 14 et accumsan Benefit 15 fermentum accumsan Other 16 mollis accumsan Scope

答えて

1

わかりましたので、私は今それを行う方法を考え出した:私は、下記のDFは、頂点の例を提供してきました。 IGRAPHで

node.list <- Listnode_test[[1]][i] 
    > node.list 
    + 1/68 vertex, named: 
    [1] vel 

    node.list <- as_ids(node.list) 

    > as_ids(node.list) 
    [1] "vel" 


> node.list <- as_ids(node.list) 
> df <- data.frame (node.list, in.degree, perspective) 
> df 
    node.list in.degree perspective 
1  vel   2   1 

as_ids()機能は、ベクターにiGraph.vsを変換:)

+0

これが正解である場合は、それを受け入れてください。あなたは自分の答えを受け入れることができます。 – lebelinoz

関連する問題