У меня есть data.table
с двумя столбцами, один с groupID
, а другой с color
. Я хочу найти длину пересечений или операцию попарного пересечения между всеми группами. В Интернете есть похожие посты, но ничего такого, что я ищу.
require(data.table)
set.seed(1)
x <- data.table(
groupID = paste0(sample(LETTERS), sample(LETTERS, replace = TRUE)),
color = sapply(1:length(LETTERS), function(x) sample(colors()[1:10])[1:sample(5:10)[1]])
)
x <- x[, .(color = unlist(color)), keyby = groupID]
Таблица ниже не имеет правильных значений, но выглядела бы она примерно так:
groups <- x[, .N, keyby = groupID][,groupID]; results <- CJ(groups, groups)
results[, intersectionLength := sapply(1:nrow(results), function(x) sample(5:10)[1])]
EDIT
В этом посте есть похожий вопрос. Как я могу применить это к моей проблеме?