2013-02-16 31 views
5

từ dữ liệu biểu hiện gen (40000 gen (biến) x 30 quan sát) Tôi muốn tạo ma trận hiệp phương sai 40000 x 40000. Điều này chắc chắn lớn hơn RAM của tôi. Với gói 'ff' tôi quản lý để preallocate một ma trận trống 40000x40000 cho các mối tương quan. Tuy nhiên hàm 'cov' hoặc 'cor' sẽ chỉ quản lý ma trận hiệp phương sai 5000x5000 trên hệ thống của tôi, vì vậy tôi phải thực hiện các phép tính hiệp phương sai 1: 5000, 5001: 10000 và điền ma trận preallocated dọc theo đường chéo. Có ai biết một thuật toán để điền vào các "bản vá lỗi còn thiếu" trong ma trận, tức là hiệp phương sai (hoặc tương quan giữa) 1 và 22000. Tôi biết tôi có thể làm tất cả các kết hợp cặp và điền vào ma trận một-by-một, nhưng 'cor 'là khá nhanh ... Vì vậy, có cách nào để tính toán cov (hoặc cor) của 1/22000 bằng cách sử dụng các hiệp phương sai đã được tính toán?Ma trận hiệp phương sai LARGE trong R

Cảm ơn trước!

Trả lời

1

Bạn có thể sử dụng cov với 2 đối số để tính toán các khối đường chéo.

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

Hmm, điều đó sẽ tạo 64 kết hợp 5000 khối cột ... – anspiess

+0

Có vẻ như với tôi câu hỏi về ma trận tương quan và câu trả lời của bạn là về hệ số tương quan. Đây là những khái niệm có liên quan, nhưng khác nhau. –