круговая диаграмма совместного присутствия в кластерах около 10 факторов в r - PullRequest
5 голосов
/ 31 октября 2011

У меня есть набор данных из двух столбцов, содержащий около 30000 кластеров и 10 таких факторов:

cluster-1 Factor1
cluster-1 Factor2
...
cluster-2 Factor2
cluster-2 Factor3
...

И я хотел бы представить совместное присутствие факторов в наборе кластеров. Что-то вроде «Фактор1 + Фактор3 + Фактор5 в 1234 кластерах» и т. Д. Для разных комбинаций. Я думал, что смогу сделать что-то вроде круговой диаграммы, но, учитывая 10 факторов, комбинаций может быть слишком много.

Что было бы хорошим способом представить это?

1 Ответ

2 голосов
/ 31 октября 2011

Там - это один хороший вопрос программирования здесь, на который следует ответить:

Как подсчитать количество одновременных появлений факторов в разных кластерах?

Сначала смоделируйте некоторые данные:

n = 1000

set.seed(12345)
n.clusters = 100
clusters = rep(1:n.clusters, length.out=n)

n.factors = 10
factors = round(rnorm(n, n.factors/2, n.factors/5))
factors[factors > n.factors] = n.factors
factors[factors < 1] = 1

data = data.frame(cluster=clusters, factor=factors)
> data
  cluster factor
1       1      6
2       2      6
3       3      5
4       4      4
5       5      6
6       6      1
...

Тогда вот код, который можно использовать для составления таблицы количества раз, когда каждая комбинация факторов встречается в кластерах:

counts = with(data, table(tapply(factor, cluster, function(x) paste(as.character(sort(unique(x))), collapse=''))))

Это можно представить в виде простой круговой диаграммы, например,

dev.new(width=5, height=5)
pie(counts[counts>1])

enter image description here

но простые подсчеты, подобные этому, часто наиболее эффективно отображаются в виде отсортированной таблицы. Подробнее об этом можно узнать Edward Tufte .

...