Vấn đề: rxImport() - "Không thể phân bổ XXXXXXXXX byte."

Đâ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") 
}


Bạn cần thêm trợ giúp?

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Microsoft dùng nội bộ

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×