2013-02-16 3 views
5

из данных экспрессии генов (40000 генов (переменных) x 30 наблюдений) Я хочу создать ковариационную матрицу 40000 x 40000. Это определенно больше, чем моя оперативная память. С пакетом «ff» мне удалось предварительно распределить пустую матрицу размером 40000x40000 для корреляций. Однако функция «cov» или «cor» будет управлять только ковариационной матрицей 5000x5000 в моей системе, поэтому мне нужно сделать поблочные вычисления ковариации 1: 5000, 5001: 10000 и заполнить предварительно распределенную матрицу по диагонали. Кто-нибудь знает об алгоритме заполнения «недостающих патчей» в матрице, т.е. ковариации (или корреляции между) 1 и 22000. Я знаю, что могу делать все парные комбинации и заполнять матрицу один за другим, но «cor 'довольно быстро ... Итак, есть ли способ вычислить cov (or cor) 1/22000, используя уже рассчитанные ковариации?БОЛЬШАЯ ковариационная матрица в R

Заранее благодарен!

ответ

1

Вы можете использовать cov с двумя аргументами для вычисления недиагональных блоков.

cov(x[,1:5000], x[,5001:10000]) 
+0

Хм, что бы сделать 64 комбинаций из 5000 колонн блоков ... – anspiess

+0

Мне кажется, что речь идет о корреляционной матрице и ваш ответ о коэффициенте корреляции. Это связанные, но разные понятия. –

Смежные вопросы