Можно ли вызвать статистическую функцию из rxDataStep() в RevoScaleR (R Server)

Я изучаю RevoScaleR (R Server), используя соответствующий курс EdX.

Мне кажется, что я могу использовать rxDataStep() для подачи функций или конструкций, переданных в аргумент "transforms", с кусками данных, которые находятся на диске, которые rxDataStep преобразует в кадры данных. rxDataStep() продолжается до тех пор, пока все данные не будут обработаны и преобразование не будет завершено. Так, например, следующий код создает новый столбец "tip_percent":

rxDataStep(nyc_xdf, nyc_xdf,
           transforms = list(tip_percent = ifelse(fare_amount > 0 & tip_amount < fare_amount, round(tip_amount * 100 / fare_amount, 0), NA)),
           overwrite = TRUE)

Мой вопрос заключается в том, могу ли я использовать rxDataStep() для подачи статистических функций, таких как lm(), с кусками данных в случаях, когда данные не помещаются в ОЗУ. Первая попытка не удалась. То есть:

rxDataStep(nyc_xdf, transforms = list(lm1 = lm(fare_amount ~ trip_distance)))

возвращает сообщение об ошибке:

ERROR: The sample data set for the analysis has no variables.

Если rxDataStep() не подходит, что будет правильным?

Ваш совет будет оценен.

1 ответ

Для подачи данных в статистические функции, где данные не помещаются в память, используйте соответствующую функцию rx. Для вашего примера вы используете файл XDF, вы бы использовали RxXdfData() и rxLinMod() следующим образом:

nyc_xdf <- RxXdfData("<path_to_xdf_file>", blocksPerRead = <number>)
lm1 <- rxLinMod(fare_amount ~ trip_distance, nyc_xdf)

Кроме того, rxLinMod() может напрямую принимать XDF-файл следующим образом:

lm1 <- rxLinMod(fare_amount ~ trip_distance, data = "<path_to_xdf_file>",
            blocksPerRead = <number>)

Замена на число строк, которые будут считаны из файла XDF за одну итерацию, позволит вам сегментировать данные в меньшие фрагменты памяти.

Пожалуйста, смотрите?RxLinMod и?RxXdfData для документации, так как может быть выполнено еще более продвинутое подмножество.

Другие вопросы по тегам