簡體   English   中英

計算由r中的兩個其他列的唯一組合分組的列中的成對值的出現

[英]Count occurrence of pair wise values in a column grouped by a unique combination of two other columns in r

  seasonNum character sceneNum 1: 1 Jon Snow 13 2: 1 Bran Stark 13 3: 1 Robb Stark 13 4: 1 Eddard Stark 13 5: 1 Rickon Stark 13 6: 1 Sansa Stark 13 7: 1 Arya Stark 13 8: 1 Eddard Stark 14 9: 1 Robb Stark 14 10: 1 Bran Stark 14 11: 1 Jon Snow 14 12: 1 Jon Snow 15 13: 1 Eddard Stark 15 14: 1 Bran Stark 15 15: 1 Robb Stark 15 16: 1 Eddard Stark 17 17: 1 Robb Stark 19 18: 1 Jon Snow 19 19: 1 Bran Stark 20 20: 1 Arya Stark 20 

structure(list(seasonNum = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), character = c("Jon Snow", 
"Bran Stark", "Robb Stark", "Eddard Stark", "Rickon Stark", "Sansa Stark", 
"Arya Stark", "Eddard Stark", "Robb Stark", "Bran Stark", "Jon Snow", 
"Jon Snow", "Eddard Stark", "Bran Stark", "Robb Stark", "Eddard Stark", 
"Robb Stark", "Jon Snow", "Bran Stark", "Arya Stark"), sceneNum = c(13L, 
13L, 13L, 13L, 13L, 13L, 13L, 14L, 14L, 14L, 14L, 15L, 15L, 15L, 
15L, 17L, 19L, 19L, 20L, 20L)), .Names = c("seasonNum", "character", 
"sceneNum"), row.names = c(NA, -20L), class = "data.frame")

這就是我擁有的數據我需要它是一個nxn字符名稱矩陣,以及它們在seasonNum和SceneNum的獨特組合中出現的次數

  Arya Jon Sansa Arya 2 1 1 Jon 1 2 1 Sansa 1 1 2 

我可以在R中使用dcast功能來實現這一目標嗎?

我無法讀入您的數據。 但這是邏輯。 DF成為您的數據表/框架。

LST <- with(DF, split(paste(seasonNum, sceneNum, sep = "&"), character) )
NUM_COMMON <- function (x, y) length(intersect(x, y))
outer(LST, LST, Vectorize(NUM_COMMON))

看到


來自akrun的交叉表格思想是另一種選擇。

XTAB <- with(DF, table(paste(seasonNum, sceneNum, sep="&"), character))
crossprod(XTAB)

暫無
暫無

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

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