2017-05-21 17 views
1

저는 R에게 매우 익숙하며 다음과 같은 문제가 있습니다.그래프 (네트워크 분석 R)를 만드시겠습니까?

저는 벨기에의 트위터에서 정치인을 연구 중이며 트위터에서 정당 내부의 네트워크가 있는지보고 싶습니다.

나는이 두 개의 데이터 파일

  • 정치인들이 연결되어 있는지 여부를 포함하는 매트릭스 파일을 (politicixpolitici.csv)
  • 그 각각의 fistname, 이름을 가지는 모든 polticians 포함 된 파일, 정당, twitterhandle 의회
    (data.csv)

내가 네트워크를 나타내는 그래프를 만들려고하지만,과 정당에 의해 채색 된 노드 (이 변수를 data.csv 파일에서 'fractie'라고 함).

먼저, 다음과 같이 파일을 결합하려고했습니다 :

다음과 같이 나는이 일을 해봤

rownames(politicicsv) <- politicicsv[,'TwitterHandle'] 
test <- cbind(politicixpolitici, 
       politicicsv[, "Fractie"][match(rownames(politicixpolitici), 
              rownames(politicicsv))]) 

을 => 나는이 네트워크를 꾸몄다했지만, 그것은 나온다 매우 조잡하고 이름이 거기에있어 매우보기가 어렵고 노드가 당에 따라 분명히 색이 지정되어 있지 않습니다.

fractie <- get.vertex.attribute(politicicsv, "Fractie") 

Error in get.vertex.attribute(politicicsv, "Fractie") : 
    get.vertex.attribute requires an argument of class network. 

사람이 네트워크를 세우고 나를 도울 수 :

다음, 나는 statnet를 사용하여 시도했다, 그러나 나는이 그래프를 만들고 싶었 때, 나는 정점 속성의 생성에 문제가 있었다 노드는 정당 ("프랙티 (Fractie)")에 속해 있습니다.

이 파일은

here이 내 논문을 도와 것입니다, 감사 찾을 수 있습니다.

+0

"politicixpolitici.csv"가 없습니다. – lukeA

+1

그냥 다시 업로드 했으니 까, 지금 거기에 있어야합니다 :) –

답변

1

그들이 속한 정당 ("Fractie")에 따라 색깔의 노드가있는이 네트워크를 계획하는 데 누군가 나를 도울 수 있습니까?

당신은 대화 형 플롯이

df <- read.csv("data.csv") 
m <- as.matrix(read.csv2("politicixpolitici.csv", row.names = 1)) 
library(igraph) 
g <- simplify(graph_from_adjacency_matrix(m)) 
# Color palette: 
(pal <- setNames(
    colorRampPalette(categorical_pal(8))(nlevels(df$Fractie)), 
    levels(df$Fractie))) 
#   CD&V Ecolo-Groen   Groen   N-VA Onafhankelijke 
# "#E69F00"  "#81ADA3"  "#33ABB9"  "#18A56E"  "#C0D64B" 
#  Open vld  Open Vld   sp.a    VB Vlaams Belang 
# "#77AB7A"  "#2A6D8E"  "#BF5F11"  "#CF6E64"  "#BC82A2" 
# Vuye&Wouters 
# "#999999" 
V(g)$color <- pal[df$Fractie[match(V(g)$name, df$TwitterHandle)]] 
set.seed(1); coords <- layout_with_fr(g) 
plot(g, 
    layout=coords, vertex.label.cex=.2, vertex.size=2, 
    edge.arrow.size=0, edge.lty="blank", asp = 0) 

처럼을하거나 시도 할 수 :

library(visNetwork) 
visIgraph(g) %>% 
    visIgraphLayout(layout="layout.norm", layoutMatrix = coords, type = "full") 

을 내가 gephi 다른 레이아웃을 실험하기 위해 그래프를 내보내는 것이 좋습니다 것 모두 모두와 대화 형으로 시각화합니다.

+0

정말 고마워요, 이것은 큰 도움이됩니다! :) –