2013-07-29 35 views
9

Tôi cố gắng để tìm ra mối tương quan của các cột của một 1347 bởi 209.974 ma trận trong R. Mỗi lần tôi làm điều đó (với một lệnh đơn giản cor(matrix), tôi nhận được thông báo:bắt segfault, bộ nhớ không ánh xạ lỗi

*** caught segfault *** 
address 0xffffffffd058abf8, cause 'memory not mapped' 

Traceback: 
1: cor(matrix) 

Đơn giản là vì ma trận quá lớn?

Nếu có, có ai có bất kỳ đề xuất nào về cách tìm mối tương quan, ngoài việc sử dụng hai nối cho các vòng tìm thấy mối tương quan giữa mỗi hàng duy nhất không? (Tôi đã thử điều này và phải mất nhiều giờ.)

Tôi đã kiểm tra và độ lệch chuẩn của tất cả các hàng không khác, vì vậy tôi biết rằng đây không phải là lý do khiến mối tương quan đó không được tính toán.

+2

Tôi đã gặp phải vấn đề này trong R. Có một số cách để thực hiện, nhưng không ai trong số họ thực sự làm việc cho tôi, tôi đã bỏ R cho dự án này. Câu trả lời hay nhất mà tôi đã sử dụng là gói 'ff' và làm việc song song. Đây là liên kết http://brainchronicle.blogspot.com/2013/02/large-correlation-in-parallel.html – nwknoblauch

+3

(1) Ngay cả khi R hết bộ nhớ, nó sẽ không được phân đoạn. Đó là một lỗi, gần như theo định nghĩa. (2) Bạn biết rằng 'cor (ma trận)' sẽ tính tương quan giữa các cột của 'ma trận', đúng không? Bởi vì có một sự khác biệt lớn giữa việc đó cho 1347 cột và 209974 cột. – joran

+0

@nwknoblauch Cảm ơn, điều đó rất hữu ích. Bạn đã sử dụng chương trình nào để tìm ra mối tương quan, nếu không phải là R? Thật không may, máy tính mà mã này cuối cùng sẽ chạy trên chỉ có một lõi, vì vậy tôi không nghĩ rằng gói sẽ được giúp đỡ nhiều. joran, nó là một lỗi trong hàm "cor"? Ngoài ra, xin lỗi - bạn nói đúng Tôi bỏ lỡ, tôi muốn các mối tương quan của các cột, không phải các hàng. Tôi đã chỉnh sửa cho phù hợp. – user2588829

Trả lời

1

Tôi đã có cùng chức năng gọi hàm trên danh sách DATA, với DATA $ x < - as.numeric (as.matrix (x)) với x là hàm. Tôi vừa xóa as.numeric và vấn đề đã được giải quyết. Nếu đó là bất kỳ sự giúp đỡ nào cho bất kỳ ai…

Các vấn đề liên quan