Вам также следует взглянуть на ddply
из пакета plyr
, этот пакет построен по принципу разделения-применения-объединения. Этот документ о пакете объясняет, как это работает и какие вещи доступны в plyr.
Общая стратегия, которую я бы здесь использовал, заключается в добавлении новых данных в набор данных с именем chunkid
. Это разрезает данные на куски по 1000 строк, посмотрите на функцию rep
, чтобы создать эту строку. Затем вы можете сделать:
result = ddply(dat, .(chunkid), functionToPerform)
Мне нравится plyr
за его ясный синтаксис и структуру, а также поддержку параллельной обработки. Как уже было сказано, пожалуйста, взгляните также на data.table
, который может быть немного быстрее в некоторых ситуациях .
Дополнительным советом может быть использование матриц вместо data.frames ...