Це загальні розміщення яті. Зазвичай проблема полягає в тому, Revolution R намагається прочитати забагато рядки за один раз, з файлу даних, обробка даних в пам'яті, з одного блока даних.
Спочатку, виконайте такі дії, щоб вирішити цю проблему:
Посеред рахунку в rxImport() малого значення для 'rowsPerRead' аргумент. Спробуйте скористатися значенням "10000" або менше. Спробуйте різних параметрів може знадобитися
Це, щоб знайти значення, яке працює добре і імпорту даних, якомога швидше.
Якщо це не допоможе, і файл csv багато стовпців, може допомогти імпортувати стовпців даних "x" за один раз. Наприклад, якщо до набору даних, як 5000 стовпці, можна імпортувати дані 50 стовпці в той час, запишіть новий файл XDF 50 стовпці даних та додавання до цього існуючого файлу в XDF.
Ось деякі зразок R код, щоб зробити це:
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")
}