Đây là một lỗi phân bổ bộ nhớ chung. Thông thường là cách mạng R đang cố gắng để đọc quá nhiều hàng cùng một lúc từ tệp dữ liệu xử lý dữ liệu trong bộ nhớ cho một đoạn dữ liệu.
Trước tiên hãy thử khắc phục sự cố sau:
Đặt giá trị nhỏ nhất đối số 'rowsPerRead' trong báo cáo rxImport() của bạn. Hãy thử một giá trị '10000' hoặc ít hơn. Bạn có thể phải cố gắng thiết đặt khác cho
Điều này để tìm một giá trị hoạt động tốt và nhập dữ liệu một cách nhanh chóng càng tốt.
Nếu điều này không giúp và tệp csv có nhiều cột, nó có thể giúp các cột dữ liệu 'x' nhập một lần. Ví dụ: nếu dữ liệu của bạn với 5000 cột, bạn có thể nhập dữ liệu cho cột 50 lần viết dữ liệu cho 50 cột XDF tệp mới và thêm vào tập tin XDF hiện có.
Đây là một số mã mẫu R để làm điều đó:
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")
}