我想用igraph来探索一些网络数据。我的数据有这样的结构:
a <- c(13, 32, NA, NA)
b <- c(32, NA, NA, NA)
c <- c(34, 13, 32, NA)
d <- c(5, NA, NA, NA)
net <- rbind(a, b, c, d)
第一栏:焦点主题id 从2到4列:焦点主题的接收器
在图中,应隔离对象5。
library(reshape)
library(igraph)
net <- as.data.frame(net)
mdata <- melt(net, id=c("V1"))
g <- graph.data.frame(mdata[,c(1,3)])
Warning message:
In graph.data.frame(mdata[, c(1, 3)]) :
In `d' `NA' elements were replaced with string "NA"
plot(g)
正如预期的那样,NA显示为节点。关于如何处理这个的任何想法?
答案 0 :(得分:1)
我必须分别定义顶点和边缘:
v <- unique(net[, 1])
mdata <- melt(net, id=c("V1"))
e <- na.omit(mdata[,c(1,3)])
g <- graph.data.frame(e, vertices=v, directed=TRUE)
plot(g)