2015-02-25 16 views
7

sto sperimentando un errore in R che dice:Come impostare il ppsize massimo in R?

> Error: protect(): protection stack overflow 

ho imparato attraverso googling che ho bisogno di aumentare:

> --max-ppsize 

R-manual:Memory

Questo può essere impostato solo quando si inizia R quindi scrivo quanto segue al prompt dei comandi:

C:\Program Files\RStudio\bin\rstudio.exe --max-ppsize=5000000 

L'errore si verifica ancora. Sto usando un set di dati 1500R x 26000C.

Come posso risolvere questo problema?


Edit:

Il problema si verifica in una funzione standard SVM(), dove passo un set di dati di dimensioni 600R x 26.000C. Non succede quando il set di dati è 600R x 12.000C.

> model <- svm(TARGET ~ ., data = ds, type = "C-classification", kernel "linear", scale = TRUE, cost = c, cross = k) 
+1

Il valore massimo non è valido. Il più grande che puoi inserire è '--max-ppsize = 500000' – HavelTheGreat

+0

Elizion: Ho appena provato la tua correzione suggerita. Ancora nessun effetto ... –

+0

Stai usando R 32 bit o 64 bit? – HavelTheGreat

risposta

3

Ho trovato un problema simile e il problema effettivo era legato all'espansione delle formule in una matrice del modello. Se riesci a ottenere i dati in quel formato senza usare le formule e poi usi il sovraccarico nel comando svm (come molti altri modelli) che prende invece un valore X e y, probabilmente potresti andare via come il mio.

1

L'overflow dello stack potrebbe essere un problema di ricorsione troppo profondo, si potrebbe avere un problema con una funzione che si fa chiamare ricorsivamente troppe volte, per esempio manca la condizione di uscita. In questo caso non c'è motivo di aumentare le dimensioni dello stack, prima o poi si esaurirà comunque.

+0

Grazie. Ho aggiunto alcune informazioni aggiuntive alla domanda originale. –

+0

Giusto, l'ho fatto. Originariamente non c'erano dettagli su ciò che viene eseguito ... –

6

Il mio modo per risolvere un problema simile al vostro:

  1. nella riga di comando, cd nella posizione di R progranm (ad esempio C: \ Program Files \ R \ R-3.1.3 \ bin \ x64)
  2. nella riga di comando, Rgui.exe --max-ppsize = 500000
  3. nel nuovo Rgui.exe aperta, le opzioni ("espressioni" = 20000)

Fare la codifica ... Nessun errore originale per me !!

+1

Questa soluzione ha funzionato anche con la soluzione che ho accettato era più semplice e funziona direttamente in R studio :) –

Problemi correlati