繁体   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