从@ThomasisCoding 的数据框开始。
structure(list(x1 = c(1L, 22L, 3L), x2 = c(1L, 22L, 3L), x3 = c(1L,
22L, 3L), x4 = c(1L, 3L, 5L), x5 = c(1L, 3L, 5L), x6 = c(1L,
3L, 2L), x7 = 1:3, x8 = c(2L, 3L, 23L)), class = "data.frame", row.names = c(NA,
-3L))
第一种选择是组合所有节点而不考虑时间 (x1, x2, ...)。
m1 <- formatC(as.matrix(df), width = 2, format = "d", flag = "0")
输出。
x1 x2 x3 x4 x5 x6 x7 x8
[1,] "01" "01" "01" "01" "01" "01" "01" "02"
[2,] "22" "22" "22" "03" "03" "03" "02" "03"
[3,] "03" "03" "03" "05" "05" "02" "03" "23"
备选方案 (II) 考虑了观察时间。
m2 <-
rbind(
c1=paste(m1[1,], names(df), sep="_"),
c2=paste(m1[2,], names(df), sep="_"),
c3=paste(m1[3,], names(df), sep="_")
)
输出。
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
c1 "01_x1" "01_x2" "01_x3" "01_x4" "01_x5" "01_x6" "01_x7" "02_x8"
c2 "22_x1" "22_x2" "22_x3" "03_x4" "03_x5" "03_x6" "02_x7" "03_x8"
c3 "03_x1" "03_x2" "03_x3" "05_x4" "05_x5" "02_x6" "03_x7" "23_x8"
对于 i = 1 到 7,Expand.grid() 将 x(i) 和 x(i+1) 处的所有出现组合在一起。
根据手头的情况选择 m1 或 m2。
mc <- m1
mmm <- c()
for (i in seq(ncol(m1)-1) ) {
mmm <- rbind(mmm, expand.grid(x = mc[, i], y = mc[, i + 1]))
}
g <- graph_from_data_frame(mmm, directed=FALSE)
g[]
输出(一)。
6 x 6 sparse Matrix of class "dgCMatrix"
01 22 03 05 02 23
01 6 2 7 2 3 1
22 3 2 3 1 . .
03 6 2 7 2 3 1
05 2 . 2 1 1 .
02 1 . 2 . 2 1
23 . . . . . .
输出(二)。
24 x 24 sparse Matrix of class "dgCMatrix"
[[ suppressing 24 column names ‘01_x1’, ‘22_x1’, ‘03_x1’ ... ]]
01_x1 . . . 1 1 1 . . . . . . . . . . . . . . . . . .
22_x1 . . . 1 1 1 . . . . . . . . . . . . . . . . . .
03_x1 . . . 1 1 1 . . . . . . . . . . . . . . . . . .
01_x2 . . . . . . 1 1 1 . . . . . . . . . . . . . . .
22_x2 . . . . . . 1 1 1 . . . . . . . . . . . . . . .
03_x2 . . . . . . 1 1 1 . . . . . . . . . . . . . . .
01_x3 . . . . . . . . . 1 1 1 . . . . . . . . . . . .
22_x3 . . . . . . . . . 1 1 1 . . . . . . . . . . . .
03_x3 . . . . . . . . . 1 1 1 . . . . . . . . . . . .
01_x4 . . . . . . . . . . . . 1 1 1 . . . . . . . . .
03_x4 . . . . . . . . . . . . 1 1 1 . . . . . . . . .
05_x4 . . . . . . . . . . . . 1 1 1 . . . . . . . . .
01_x5 . . . . . . . . . . . . . . . 1 1 1 . . . . . .
03_x5 . . . . . . . . . . . . . . . 1 1 1 . . . . . .
05_x5 . . . . . . . . . . . . . . . 1 1 1 . . . . . .
01_x6 . . . . . . . . . . . . . . . . . . 1 1 1 . . .
03_x6 . . . . . . . . . . . . . . . . . . 1 1 1 . . .
02_x6 . . . . . . . . . . . . . . . . . . 1 1 1 . . .
01_x7 . . . . . . . . . . . . . . . . . . . . . 1 1 1
02_x7 . . . . . . . . . . . . . . . . . . . . . 1 1 1
03_x7 . . . . . . . . . . . . . . . . . . . . . 1 1 1
02_x8 . . . . . . . . . . . . . . . . . . . . . . . .
03_x8 . . . . . . . . . . . . . . . . . . . . . . . .
23_x8 . . . . . . . . . . . . . . . . . . . . . . . .