Tas ir vispārīgi atmiņas piešķiršanas kļūda. Parasti šī problēma ir Revolution R mēģina lasīt pārāk daudz rindu uzreiz datu faila datu atmiņā viena bloka datu apstrādes.
Vispirms mēģiniet veikt šādas darbības, lai novērstu šo problēmu:
Arguments "rowsPerRead" mazs vērtības iestatīšana rxImport() paziņojumā. Izmēģiniet "10000" vai mazāku vērtību. Iespējams, vajadzēs izmēģināt citus iestatījumus
Šī vērtība, kas darbojas un importē datus pēc iespējas ātrāk atrast.
Ja tas nepalīdz csv fails ir daudz kolonnu, tas var palīdzēt vienlaikus importēt kolonnas dati "x". Piemēram, ja dataset 5000 kolonnas, varat importēt datus 50 kolonnām pa vienai izrakstīt 50 jaunu XDF failu kolonnas dati un pievienot šo XDF failam.
Šeit ir dažas koda paraugu R, lai to izdarītu:
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")
}