Если мы имеем дело с относительно большой таблицей данных (с миллионами строк) и обрабатываем эти данные в R, то следует принимать во внимание тот факт, что памяти компьютера может не хватить. Предлагаем рассмотреть грубую схема расчёта необходимой памяти компьютера для обработки данных в R.
Для начала нужно узнать параметры системы:
— Сколько оперативной памяти доступно?
— Какие приложения запущены/используются?
— Использует ли кто-то другой систему параллельно?
— Какая ОС установлена?
— Это 32-х или 64-разрядная система?
Теперь перейдём к расчётам. Предположим, что мы работаем с таблицей данных, в которой 1 млн. 700 тыс. строк и 111 столбцов, тип данных – numeric (8 байт). Считаем:
1700000 x 111 x 8 = 1509600000 байт
= 1509600000 / 2^20 = 1439,67 Мегабайт
= 1,44 Гб.
Почти полтора Гига нужно для загрузки данного датасета. Это нужно учитывать. Рекомендуется иметь доступной памяти примерно в 2 раза больше расчётной.
Небольшое дополнение: при загрузке данных в R с помощью read.table()
важно указывать сопутствующие параметры, чтобы ускорить процесс. Например, почти в 2 раза можно ускорить процесс, если указать классы столбцов в аргументе colClasses
. Если их не знаете, то можно применить такой грубый трюк:
1 2 3 |
initial <- read.table("nujniedannie.txt", nrows = 100) classes <- sapply(initial, class) tabAll <- read.table("nujniedannie.txt", colClasses = classes) |