2013-07-29 18 views
9

Sto cercando di trovare la correlazione tra le colonne di un 1347 da 209.974 matrice R. Ogni volta che lo faccio (con un semplice comando cor(matrix), ottengo il messaggio:catturato segfault, la memoria non mappata errore

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

Traceback: 
1: cor(matrix) 

E 'semplicemente perché la matrice è troppo grande?

Se è così, qualcuno ha qualche suggerimento su come trovare le correlazioni, tranne usando due concatenati per cicli che trovano le correlazioni tra ogni coppia unica di righe? (Ho provato questo e ci vogliono ore.)

Ho già controllato, e la deviazione standard di tutte le righe è diversa da zero, quindi so che questo non è il motivo per cui la correlazione non viene calcolata.

+2

Mi sono imbattuto in questo stesso problema in R. Ci sono diversi modi per farlo, ma poiché nessuno di loro ha funzionato per me, ho finito per abbandonare R per questo progetto. La migliore risposta che ho trovato ha usato il pacchetto 'ff' e ha funzionato in parallelo. Ecco il link http://brainchronicle.blogspot.com/2013/02/large-correlation-in-parallel.html – nwknoblauch

+3

(1) Anche se R sta esaurendo la memoria, non dovrebbe essere segfault. Questo è un bug, quasi per definizione. (2) Sei consapevole che 'cor (matrix)' calcola la correlazione tra le colonne di 'matrix', giusto? Perché c'è una grande differenza tra farlo per 1347 colonne e 209974 colonne. – joran

+0

@nwknoblauch Grazie, è utile. Che programma hai usato per trovare le correlazioni, se non R? Sfortunatamente, il computer su cui verrà eseguito questo codice ha un solo core, quindi non penso che il pacchetto sarà di grande aiuto. joran, è un bug nella funzione "cor"? Inoltre, scusate, hai ragione, ho scelto le correlazioni delle colonne, non le righe. Ho modificato di conseguenza. – user2588829

risposta

1

Ho avuto lo stesso problema funzione di chiamata su un DATA lista, con DATI $ x < - as.numeric (as.matrix (x)) con x è una funzione. Ho appena rimosso as.numeric e il problema è stato risolto. Se è di qualche aiuto per chiunque ...

Problemi correlati