У меня есть входной файл со списком кластеров ~ 50000 и наличие в каждом из них нескольких факторов (всего около 10 миллионов записей), см. ниже пример ниже:
set.seed(1)
x = paste("cluster-",sample(c(1:100),500,replace=TRUE),sep="")
y = c(
paste("factor-",sample(c(letters[1:3]),300, replace=TRUE),sep=""),
paste("factor-",sample(c(letters[1]),100, replace=TRUE),sep=""),
paste("factor-",sample(c(letters[2]),50, replace=TRUE),sep=""),
paste("factor-",sample(c(letters[3]),50, replace=TRUE),sep="")
)
data = data.frame(cluster=x,factor=y)
С небольшим количеством помощи от другого вопроса я получил его для создания piechart для совместного возникновения таких факторов:
counts = with(data, table(tapply(factor, cluster, function(x) paste(as.character(sort(unique(x))), collapse='+'))))
pie(counts[counts>1])
Но теперь я хотел бы иметь диаграмму Венна для совместного возникновения факторов. В идеале, также в том виде, в котором может принимать порог для минимального количества для каждого фактора. Например, диаграмма Венна для разных факторов, чтобы каждый из них должен был иметь n > 10 в каждом кластере, который должен быть учтен.
Я попытался найти способ для создания подсчета таблиц с помощью агрегата, но не смог заставить его работать.