R op MacOS-fout: vectorgeheugen uitgeput (limiet bereikt?)

Ik probeer een R-script uit te voeren (in het bijzonder gebruik ik de functie “getLineages” uit het Bioconductor-pakket, Slingshot.

Ik vraag me af waarom de fout “vectorgeheugen uitgeput (limiet bereikt?)” verschijnt wanneer ik deze functie gebruik, aangezien het niet de meest geheugenintensieve functie lijkt te zijn in vergelijking met de andere functies in deze pakket (met de gegevens die ik analyseer).

Ik begrijp wel dat er meer van dit soort vragen zijn op Stackoverflow, maar ze stellen allemaal voor om over te schakelen naar de 64-bits versie van R. Ik gebruik deze versie echter al. Er lijken tot nu toe geen andere antwoorden op dit probleem te zijn, ik vroeg me af of iemand het misschien weet?

De gegevens zijn slechts ~120 MB groot, wat veel minder is dan de 8 GB RAM van mijn computer.

R 64-bits versie


Antwoord 1, autoriteit 100%

Voor degenen die Rstudio gebruiken, heb ik ontdekt dat de instelling Sys.setenv('R_MAX_VSIZE'=32000000000), zoals gesuggereerd op meerdere StackOverflow-berichten, alleen werkt op de opdrachtregel, en dat het instellen van die parameter tijdens het gebruik van Rstudio voorkomt deze fout niet:

Error: vector memory exhausted (limit reached?)

Na wat meer lezen, vond ik dezethread, die het probleem met Rstudio verduidelijkt en een oplossing identificeert, zoals hieronder weergegeven:

Stap 1: Terminal openen,

Stap 2:

cd ~
touch .Renviron
open .Renviron

Stap 3: Sla het volgende op als de eerste regel van .Renviron:

R_MAX_VSIZE=100Gb 

Opmerking: deze limiet omvat zowel fysiek als virtueel geheugen; dus het instellen van _MAX_VSIZE=16Gb op een machine met 16Gb fysiek geheugen kan deze fout niet voorkomen. Mogelijk moet u met deze parameter spelen, afhankelijk van de specificaties van uw machine


Antwoord 2, autoriteit 10%

Ik had hetzelfde probleem, het verhogen van de "R_MAX_VSIZE"hielp in mijn geval niet, in plaats daarvan loste het opschonen van de variabelen die niet langer nodig waren het probleem op. Ik hoop dat dit degenen helpt die het hier moeilijk hebben.

rm(large_df, large_list, large_vector, temp_variables)

LEAVE A REPLY

Please enter your comment!
Please enter your name here

19 − 8 =

Other episodes