Genel bellek ayırma hatası budur. Devrim R çok fazla satır aynı anda tek bir veri yığını için bellek verileri işlemek için veri dosyasından okumaya çalışıyor her zamanki sorunudur.
Önce bu sorunu çözmek için aşağıdakileri deneyin:
RxImport() deyiminizde 'rowsPerRead' bağımsız değişkeni için küçük bir değer ayarlayın. '10000' veya daha az bir değer deneyin. İçin farklı ayarlar deneyin gerekebilir
Bu mümkün olan en kısa sürede veri alır ve iyi çalışan bir değeri bulmak için.
Bu işe yaramazsa ve csv dosyanızda çok sayıda sütun varsa, 'x' veri sütunlarını bir kerede almak için yardımcı olabilir. Örneğin, dataset 5000 sütunlar, bir seferde 50 sütunu için veri almak ve verileri yeni bir XDF dosyası için 50 sütunu dışarıda yazmak ve varolan XDF dosya eklenecek isterseniz.
Bunu yapmak için bazı R örnek kod aşağıda verilmiştir:
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")
}