2013-07-29 13 views
9

Próbuję znaleźć korelację kolumnach w 1347 roku przez 209974 matrycy w R. Everytime I to zrobić (za pomocą prostego polecenia cor(matrix), otrzymuję komunikat:złapany segfault, pamięć nie odwzorowany błąd

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

Traceback: 
1: cor(matrix) 

jest to po prostu dlatego, że matryca jest zbyt duże?

Jeśli tak, to czy ktoś ma jakieś sugestie, w jaki sposób znaleźć korelacje, inne niż przy użyciu dwóch łączone dla pętli, które znaleźć korelacje między każdą unikalną parę wierszy? (Próbowałem tego i zajmuje to wiele godzin.)

Już sprawdziłem, a standardowe odchylenie wszystkich wierszy jest niezerowe, więc wiem, że to nie jest powodem, że korelacja nie jest obliczana.

+2

Wpadłem na ten problem w R. Istnieje wiele sposobów, aby o tym poradzić, ale ponieważ żadna z nich naprawdę nie działała dla mnie, skończyło się porzucenie R dla tego projektu. Najlepszą odpowiedzią, z którą się spotkałem, był pakiet 'ff' i działał równolegle. Oto link http://brainchronicle.blogspot.com/2013/02/large-correlation-in-parallel.html – nwknoblauch

+3

(1) Nawet jeśli R kończy się pamięć, to nie powinno to być uszkodzenie. To błąd, prawie z definicji. (2) Masz świadomość, że 'cor (matrix)' będzie obliczać korelację między kolumnami 'matrix ', prawda? Ponieważ istnieje duża różnica między robieniem tego dla 1347 kolumn i 209974 kolumn. – joran

+0

@nwknoblauch Dzięki, to jest pomocne. Jakiego programu użyłeś do znalezienia korelacji, jeśli nie R? Niestety, komputer, na którym ten kod ostatecznie będzie działał, ma tylko jeden rdzeń, więc nie sądzę, że pakiet będzie bardzo pomocny. joran, czy jest to błąd w funkcji "cor"? Również, przepraszam - masz rację, że pomyłkę, chcę korelacje kolumn, a nie wierszy. Odpowiednio zredagowałem. – user2588829

Odpowiedz

1

miałem ten sam problem funkcję rozmów na DANYCH listy, z DATA $ x < - as.numeric (as.matrix (x)) gdzie x jest funkcją. Właśnie usunąłem numer .umerumer i problem został rozwiązany. Jeśli jest to pomocne dla każdego ...

Powiązane problemy