Проблем: rxImport() - "Не успя да отдели XXXXXXXXX байта."

Това е грешка за разпределение на обща памет. Проблемът обикновено е Revolution R да се опитва да чете твърде много редове едновременно от вашия файл с данни за обработване на данните в паметта за един блок от данни.

Първо опитайте следното, за да разрешите проблема:

Задайте малка стойност за аргумента "rowsPerRead" във вашия rxImport() декларация. Опитайте стойност "10000" или по-малко. Може да се наложи да опитате различни настройки за

това за намиране на стойност, която работи добре и импортира данните възможно най-бързо.

 

Ако това не помогне и csv файла има много колони, тя може да помогне да импортирате данните "x" колони в даден момент. Например ако вашите данни като 5000 колони, можете да импортирате данните за 50 колони наведнъж и запис на данни за 50 колони в нов файл XDF и добавяне към съществуващ 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") 
}


Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×