Dette er en generell feil ved minnetildeling. Vanlige problemet er at revolusjon R prøver å lese for mange rader om gangen fra datafilen til å behandle dataene i minnet for en enkelt mengde data.
Først kan du prøve følgende for å løse problemet:
Angi en lav verdi for argumentet 'rowsPerRead' i setningen rxImport(). Prøv en verdi på '10000' eller mindre. Du må kanskje prøve forskjellige innstillinger for
Dette for å finne en verdi som fungerer bra og importerer data så raskt som mulig.
Hvis dette ikke hjelper, og har mange kolonner for csv-fil, kan det hjelpe for å importere "x"-datakolonner om gangen. For eksempel hvis din dataset som 5000 kolonner du vil kanskje til å importere dataene for 50 kolonner om gangen og skrive ut data for 50 kolonner i en ny XDF-fil og legge til den eksisterende XDF-filen.
Her er noen eksempelkode R å gjøre dette:
varNames <- readLines("mycsv.txt", n=1) colsPerRead <- 50 ## Set how many columns to read from the csv file at a time. You may want to initially set this to a larger value, say 100.
numReadsFromFile <- length(varNames/colsPerRead)
for (i in 1:numReadsFromFile)
{
tempdf <- rxImport(inData = "C:/MyRData/data.csv", varsToKeep = paste(varNames[((i-1)*colsPerRead)+1:(((i-1)*colsPerRead)+1)+colsPerRead], sep = ","),
rowsPerRead = 10000)
rxDataFrameToXdf(data = tempdf, ouFile = "C:/MyRData/data.xdf", append = "cols")
}