3.1 데이터 세트 1: 에지 목록(edgelist)
우리가 사용할 첫 번째 데이터 세트는 “Media-Example-NODES.csv
”와 “Media-Example-EDGES.csv
”두 개의 파일로 구성된다 (download here).
<- read.csv("Dataset1-Media-Example-NODES.csv", header=T, as.is=T)
nodes <- read.csv("Dataset1-Media-Example-EDGES.csv", header=T, as.is=T) links
데이터 내용을 살펴보자 :
head(nodes)
## id media media.type type.label audience.size
## 1 s01 NY Times 1 Newspaper 20
## 2 s02 Washington Post 1 Newspaper 25
## 3 s03 Wall Street Journal 1 Newspaper 30
## 4 s04 USA Today 1 Newspaper 32
## 5 s05 LA Times 1 Newspaper 20
## 6 s06 New York Post 1 Newspaper 50
head(links)
## from to weight type
## 1 s01 s02 10 hyperlink
## 2 s01 s02 12 hyperlink
## 3 s01 s03 22 hyperlink
## 4 s01 s04 21 hyperlink
## 5 s04 s11 22 mention
## 6 s05 s15 21 mention
nrow(nodes); length(unique(nodes$id))
## [1] 17
## [1] 17
nrow(links); nrow(unique(links[,c("from", "to")]))
## [1] 52
## [1] 49
from-to 조합의 단일값 보다 더 많은 링크가 있음에 주목하라. 동일한 두 개의 노드 사이에 복수개의 링크가 있는 예가 있음을 의미한다. 동일한 노드 사이의 동일 유형의 모든 링크는 from
, to
, 그리고 type
별로 aggregate()
함수를 사용하여 그들의 가중치를 합해 줌으로써 없애 줄 것이다. 여기서 우리는 서로 다른 링크 유형을 없애지 않기 위해 simplify()
함수를 사용하지 않는다.
<- aggregate(links[,3], links[,-3], sum)
links <- links[order(links$from, links$to),]
links
colnames(links)[4] <- "weight"
rownames(links) <- NULL