2011-07-03 6 views
1

私はRで新しいです。私はigraphライブラリで作業しています。私はそのようなライブラリを使って新しいです。ファイルからエッジを読み取る。私はグラフを定義できません

私は問題を抱えている:

私は、テキストファイル内のエッジのリストを持っています。 2つの列があります。最初のノードには初期ノードがあり、2番目のノードには終了ノードがあります。私は、ファイルを読んでいます

g1 <-read.table ("g1.txt") 

読み取りが成功しています。 ls.str(g1)

私が取得:

V1 : int [1:995] 0 0 0 0 0 0 0 0 0 0 ... 
V2 : int [1:995] 2 3 4 5 6 7 8 9 10 11 ... 

私はちょうどロードされたエッジを持つグラフを定義しようとする私が取得:

Error in graph(g1) : (list) object cannot be coerced to type 'double' 

がどのように私ができる避け、ファイルの端からグラフを定義します上記のエラー?

+0

それはあなたがテキストファイルの小さなサンプルを提供することができれば、私たちは、あなたの質問に答えるに役立つだろうあなたのエラーメッセージを再作成し、同じデータからグラフを生成します。ファイルが小さければ、 'dput'を使ってみることができます。 'ls.str'は最初の引数としてhttp://stat.ethz.ch/R-manual/R-patched/library/utils/html/ls_str.html:pos = -1を持ちます。私はそれがあなたのリストを倍増させてpos引数を入力しようとしていると思う。あなたが欲しいものになる可能性は低いです! –

+2

オブジェクト上の 'as.matrix()'が機能するかもしれませんか? –

答えて

5

@Sacha Epskampが示唆しているように、as.matrixは、転置でこれを並べ替えることができます。

以下は

> library(igraph) 
> g1 <- data.frame(V1 = c(0,0,0,0), V2 = c(2,3,4,5)) 
> g1 
    V1 V2 
1 0 2 
2 0 3 
3 0 4 
4 0 5 
> 
> graph(g1) 
Error in graph(g1) : (list) object cannot be coerced to type 'double' 
> 
> g2 <- t(as.matrix(g1)) 
> g2 
    [,1] [,2] [,3] [,4] 
V1 0 0 0 0 
V2 2 3 4 5 
> 
> graph(g2) 
Vertices: 6 
Edges: 4 
Directed: TRUE 
Edges: 

[0] 0 -> 2 
[1] 0 -> 3 
[2] 0 -> 4 
[3] 0 -> 5 
+0

ありがとうございます、あなたはエラーと提案のソリューションを再作成したときの両方の回答がとても明確です。 あなたは私の問題を解決しました。 –

関連する問題