Detta är en allmän minnesallokeringsfel. Vanliga problem är att revolutionen R skulle läsas för många rader samtidigt från datafilen för att bearbeta data i minnet för en enskild del av data.
Först prova följande för att lösa problemet: Ange ett mindre värde för argumentet 'rowsPerRead' i uttrycket rxImport(). Prova ett värde på "10000" eller mindre. Du kan behöva prova olika inställningar för Detta för att hitta ett värde som fungerar bra och importerar data så snabbt som möjligt. Om detta inte hjälper och CSV-fil har många kolumner, hjälper det för att importera 'x' datakolumner samtidigt. Till exempel om din datauppsättning som 5000 kolumner, du kanske vill importera data för 50 kolumner samtidigt och skriva ut data för 50 kolumner till en ny XDF-fil och lägga till befintliga XDF filen. Här är några exempelkod R att göra detta: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") }