次のPythonコード(Networkx
)をR(igraph
)に変換しようとしています。 エラーのあるPython NetworkxからR igraphへの変換
次
# Python code
import csv
import networkx as nx
import urllib
DG=nx.DiGraph()
dogcsv=csv.DictReader(open("dogs.csv","rU"))
dogid=0
nodeStr=['id', 'species', 'Location 1', 'Location 2']
nodeInt=['sumflu']
fluCols=['Influenza-1', 'Influenza-2', 'Influenza-3', 'Influenza-4',
'Influenza-5', 'Influenza-6', 'Influenza-7', 'Influenza-8', 'Influenza-9']
for flu in fluCols:
DG.add_node(flu,typ="species")
for row in dogcsv:
dogID='animal'+str(dogid)
DG.add_node(dogID,typ='animal')
for dog in nodeStr:
DG.node[dogID][dog]=row[dog]
for dog in nodeInt:
DG.node[dogID][dog]=int(row[dog])
for flu in fluCols:
if str(row[flu])=='1':
DG.add_edge(dogID,flu)
dogid=dogid+1
はの部分的な変換で私の試みであるのPythonからRに
# R code
library("data.table")
library("igraph")
dogs <- make_empty_graph()
dogcsv <- fread("dogs.csv")
dogid <- 0
nodeStr <- c("id", "species", "Location 1", "Location 2")
nodeInt <- "sumflu"
fluCols <- c("Influenza-1", "Influenza-2", "Influenza-3", "Influenza-4",
"Influenza-5", "Influenza-6", "Influenza-7", "Influenza-8")
for(flu in fluCols) {
dogs[flu] <- dogs %>% add_vertices(8) %>% add_vertices(dogs[flu], typ = "host")
}
これは私が、私はRコードの最後の部分を実行したときに表示されるエラーコードです:パイソンNetworkx
で
Error in intI(i, n = [email protected][1], dn[[1]], give.dn = FALSE) :
no 'dimnames[[.]]': cannot use character indexing
、グラフは、ex(graphname.functionによって呼び出すことができる。DG.add_node(dogID,typ='animal')
)。
Rのigraph
に相当するものはありますか?
ノードの数を定義することなく、Rのigraph
のノードを呼び出す方法はありますか?
また、Rへの翻訳を完了するためのヒントやご提案はありますか?
ありがとうございます。
以下に.CSVデータを含む:
ID、種類、位置1、位置2、動物ID、sumvirus、インフルエンザ-1、インフルエンザ-2、インフルエンザ-3、インフルエンザ-4、インフルエンザ-5、インフルエンザ-6、インフルエンザ-7、インフルエンザ-8、インフルエンザ-9
YUI-4322、host1、Park 4、Park、MW 391,1,0,0,0,0,0,0,0 、0,0
YUI-4321、host2、Park4、Park、MW390,0,0,0,0,0,0,0,0,0
YUI-4320、host2、Park 4、 Park、MW 389,1,0,0,0,0,0,0,0,0,0
YUI-4319、host2、Park 4、Park、MW 388,0,0,0,0,0、 0,0,0,0,0
YUI-7318、host2、Park 4、Park、MW 387,1,0,0,0,0,0,0,0, YUI-4317、host1、Park 4、Park、MW 386 、0,0,0,0,0,0,0,0,0,0
YUI-4316、host2、Park 4、Park、MW 385,1,1,0,0,0,0,0、 0,0,0
YUI-2315、host1、Shelter 2、Shelter、MV319,1,0,0,0,0,0,0,0,0,0,
YUI-4314、host1、Shelter 2、 Shelter、MV 332,1,0,0,0,0,0,0,01,0,0
あなたは[http://stackoverflow.com/questions/17433402/r-igraph-rename-vertices](this)に興味があるかもしれません。igraph Pythonバージョンが存在します。おそらく中間段階としてあなたはそれに翻訳することができます。どうしたらnetworkxから離れることができますか? ;-) –