2016-12-06 4 views
1

複数の列のデータをモデル化する際に助けが必要です。私は.csvファイルを持っています。私は、彼らが苦しんでいる年齢、性別、場所および病気の人のエッジリストを持っています。私は病気の人の二部グラフを描きました。 igraphを使用して二部グラフの年齢、性別、場所を読み取るにはどうすればよいですか?私は以下のコードを試しましたが、ネットワークを描くのに2列のcsvしかかかりません。このケースでは、年齢、性別、場所などの人物の属性を読む方法を教えてください。R(igraph)やPythonを使用して異なるタイプのノードをモデル化する方法は?

Person Diseases Age gender location  
    Person1 Asthma 25 Female Location1 
    Person2 Pneumonia 35 Male Location2 
    Person3 Typhoid 40 Male Location3 

    getwd() 
    datafile <- "/d.csv" 
    d_el <- read.csv(datafile) 
    d_el <- d_el[, 1:4 ] 
    head(d_el) 
library(igraph) 
g <- graph.data.frame(d_el, directed = FALSE) 
plot(g, layout = pref.layout, 
    vertex.color="black" 
    ) 

私はこれらのコード行を使用しています。出力は何を表していますか?

V(g)$Person<- d_el$Person 
V(g)$location<- d_el$location 
V(g)$location[which(V(g)$Person %in% neighbors(g, "TB"))] 

答えて

1

edgelistから二部ネットワークを作るために、まず、あなたがそうでなければ、それを教えてくれない限り、IGRAPHは、ノードおよびイベントとして最初の2つの列を読み込みます。次に、igraphに属性 "型"に名前のベクトルを追加することによってネットワークが二者であることを伝える必要があります。そのため、ノードとイベントを含む列を指定するか、列の順序を変更して、「Person」と「Disease」が最初の2つの列になるようにします。

library(igraph) 
d_el <- d_el[,c(1,4,2,3)] #Reorder columns 
g <- graph.data.frame(d_el, directed = FALSE) 
V(g)$type <- V(g)$name %in% d_el[,1] 
g 
#View the igraph object and you will see it say something like 
#"IGRAPH DN-B" - the B shows it's bipartite 

属性を追加するために同様の構文を使用します。

V(g)$age <- d_el$Age 
V(g)$gender <- d_el$Gender 

「疾患」との提携に基づいて、ノードセットを取得するには、neighbors関数を使用します。隣人に応じた属性をサブセット化によって、属性情報を取得します:

neighbors(g, "Asthma") #Gets all the names of nodes affiliated with Asthma 
V(g)$gender[which(V(g)$name == as_ids(neighbors(g, "Asthma")))] 
#Gets the gender of all those with asthma 

(ネットワーク等としてプロット、)ネットワークのように表すことができるIGRAPHオブジェクトを抽出するにはasthma <- make_ego_graph(g,1,"Asthma")を使用しています。

+0

私はこのような属性を追加しましたが、病気のある人の二者間ネットワークを分析しながら、名前ジェーンの人に36歳の人がいることをどうして示していますか? – student123

+0

あなたが何を望んでいるかわからない。あなたは、その病気に基づいた近所を作成することで、その病気による個人の属性を抽出することができます(すべての人がどのようにそれを持っているか)。そして興味のある属性を抽出します。 %隣人(g、 "喘息"))] '。しかし、この種の分析を行うためのネットワークは必要ありません。正確に何をしたいですか?例が役立ちます。 – paqmo

+0

ノードの色、サイズ、形状を変更して、さまざまな年齢や性別を反映させて、これらを視覚的に検査することができます。 – paqmo

関連する問題