簡體   English   中英

如何從數據中生成R中的igraph兼容邊集

[英]How to generate an igraph-compatible edge set in R from data

我有一個數據集,當前包含一組單詞以及它們最初的段落,如下所示:

word <- c("wind", "statement", "card", "growth", "egg", "caption", "statement", "robin", "growth")
paragraph <- c(1, 1, 1, 2, 2, 2, 3, 3, 3)
data <- data.frame(word, paragraph)

我試圖從它生成一個igraph的邊緣列表,根據它在這樣的段落中的共現來連接每個單詞:

node1 <- c("wind", "wind", "statement", "statement", "card", "card", "growth", "growth", "egg", "egg", "caption", "caption", "statement", "statement", "robin", "robin", "growth", "growth")
node2 <- c("statement", "card", "wind", "card", "wind", "statement", "egg", "caption", "growth", "caption", "growth", "egg", "robin", "growth", "statement", "growth", "statement", "robin")
edges <- data.frame(node1, node2)

到目前為止,我只是想出了如何根據段落使用來計算每個單詞之間的相關性

data <- data %>% group_by(word) %>% pairwise_cor(word, paragraph, sort = TRUE)

來自widyr包,但對於我想要運行的其他操作,我真的需要邊緣是實際的共現數而不是相關系數。 有誰知道是否有一些代碼可以解決這個問題? 任何幫助將非常感謝!!

當你說“我真的需要邊緣是實際的共現數而不是相關系數”時,我不太清楚你的意思。 然而,“我正在嘗試為它創建一個邊緣列表,根據它在段落中的共現來連接每個單詞”似乎很清楚。 我認為這意味着如果兩個單詞在同一段落中,它們會被鏈接起來。 你可以像這樣使用combn制作那種combn

Edges = c()
for(p in unique(data$paragraph)) { 
    Edges = c(Edges, word[combn(which(data$paragraph == p), 2)]) }
EL = matrix(Edges, ncol=2, byrow=T)

library(igraph)

g = graph_from_edgelist(EL, directed=FALSE)
plot(g)

段落圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM