Ini adalah kesalahan alokasi memori umum. Masalah biasanya adalah bahwa revolusi R mencoba membaca terlalu banyak baris sekaligus dari file data untuk memproses data dalam memori untuk potongan tunggal data.
Coba dulu berikut ini untuk mengatasi masalah ini:
Tetapkan nilai kecil untuk argumen 'rowsPerRead' dalam pernyataan rxImport() Anda. Cobalah nilai '10000' atau kurang. Anda mungkin harus mencoba pengaturan yang berbeda untuk
Hal ini untuk menemukan nilai yang bekerja dengan baik dan impor data sesegera mungkin.
Jika ini tidak membantu dan file csv Anda memiliki banyak kolom, ini dapat membantu untuk mengimpor data 'x' kolom per satu. Misalnya, jika Anda dataset sebagai kolom 5000, Anda mungkin ingin mengimpor data untuk kolom 50 per satu dan menulis data untuk 50 kolom ke berkas XDF baru dan tambahkan ke berkas XDF yang ada.
Berikut adalah beberapa kode contoh R melakukannya:
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")
}