У меня есть входной файл со списком ~ 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)
С небольшой помощью другого вопроса я получил круговую диаграмму для совместного возникновения таких факторов, как это:
counts = with(data, table(tapply(factor, cluster, function(x) paste(as.character(sort(unique(x))), collapse='+'))))
pie(counts[counts>1])
Но теперь я хотел бы иметь диаграмму Венна для совпадения факторов. В идеале также таким образом, чтобы можно было принять пороговое значение минимального количества для каждого фактора. Например, диаграмма Венна для различных факторов, так что каждый из них должен присутствовать n>10 в каждом кластере, чтобы его можно было принять во внимание.
Я пытался найти способ подсчета таблиц с помощью агрегата, но не смог заставить его работать.
venneuler
, или эта краткая статья в Journal of Stat Software с использованием библиотекиvenn
(Мердок, 2004 г. а>). Если речь идет исключительно о программировании на R, его следует перенести на SO. - person Andy W   schedule 14.11.2011y
не зависят от начального числа, поэтому не будет ли излишним использоватьsample()
для их создания? Вместо этого вы могли бы использоватьrep
, или они должны были быть случайными? - person Iterator   schedule 20.11.2011