Re: [問題] adjacency matrix
※ 引述《angela79979 (mini)》之銘言:
: [問題類型]:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
: [軟體熟悉度]:
: 入門(寫過其他程式,只是對語法不熟悉)
: [問題敘述]:
: 資料為許多筆list,如:
: 1,2,4,3,5
: 2,4,5,3
: ...
: 想計算(i-1,i) 相鄰兩個數出現的頻率並轉還成matrix形式
: 如:
: (i-1,i) : 頻率
: 以(i-1)為matrix的行列,頻率為該元素的值,
: 若利用以上的資料 :
: (1,2):1 _1 2 3 4 5 _
: (2,4):2 1 | 0 1 0 0 0 |
: (4,3):1 ==> M=2 | 0 0 0 2 0 |
: (3,5):1 3 | 0 0 0 0 1 |
: (4,5):1 4 | 0 0 1 0 1 |
: (5,3):1 5 |_0 0 1 0 0 _|
: 請問是否有見意的方法或package?
: [關鍵字]:
: adjacency matrix
library(data.table)
library(dplyr)
library(magrittr)
library(Matrix)
r = list(c(1,2,4,3,5), c(2,4,5,3))
dat = sapply(r, function(x) cbind(x[-length(x)], x[-1])) %>%
do.call(rbind, .) %>% tbl_dt() %>% mutate(Value = 1) %>%
group_by(V1, V2) %>% summarise(sumV = sum(Value))
A = sparseMatrix(dat$V1, dat$V2, x=dat$sumV)
[1,] . 1 . . .
[2,] . . . 2 .
[3,] . . . . 1
[4,] . . 1 . 1
[5,] . . 1 . .
# . 在sparseMatrix是0
# 可以用as. matrix還原
as.matrix(A)
[,1] [,2] [,3] [,4] [,5]
[1,] 0 1 0 0 0
[2,] 0 0 0 2 0
[3,] 0 0 0 0 1
[4,] 0 0 1 0 1
[5,] 0 0 1 0 0
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.205.27.107
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1429668770.A.B52.html
※ 編輯: celestialgod (123.205.27.107), 04/22/2015 10:19:10
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章