我试图在R studio中绘制网络或连接。 我找到了一个有用的包,信息如下, http://stats.idre.ucla.edu/r/faq/how-can-i-manage-and-plot-social-network-data/
帖子以数据表开头。格式如下,
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1
3 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0
这是我的问题,我的数据以成对开头。
V1;V22
V1;V24
V2;V5
V2;V6
V2;V10
V2;V20
V2;V21
V3;V2
V3;V5
V3;V7
有没有办法将它格式化为R中的数据表或矩阵,就像第一个一样? 方向信息无关紧要。
答案 0 :(得分:1)
如果没有for
循环,可能有一种方法可以做到这一点,但这应该可以完成工作。假设您可以忽略所有数字前面的“V”。
library(data.table)
#initilize sample data set
DT <- data.table(c(1,1,2,2,2,2,2,3,3,3), c(22,24,5,6,10,20,21,2,5,7))
#Create DT with correct number of rows
DT_1 <- data.table(1:max(DT$V1))
#Add in correct amount of columns
DT_1 <- DT_1[, paste0(1:max(DT)) := .SD][, 2:(max(DT)+1)]
#Set everything to 0
DT_1[,] <- 0
#loop through and add 1 for each reference in the pairs
for(i in 1:dim(DT)[1]){
DT_1[DT$V1[i], DT$V2[i]] <- DT_1[[DT$V1[i], DT$V2[i]]] + 1
}
#Output
DT_1
答案 1 :(得分:0)
我找到了一个与此问题相关的帖子,目的相同。 https://lists.nongnu.org/archive/html/igraph-help/2008-09/msg00007.html
它显示非数字顶点可以直接读取并通过igraph R包绘制。
g <- read.graph("temp.txt", format="ncol")
plot.igraph(g)
文件temp.txt
V1 V22
V1 V24
V2 V5
V2 V6
V2 V10
V2 V20
V2 V21
V3 V2
V3 V5
V3 V7