Создайте собственную группирующую переменную.
d <- split(my_data_frame,rep(1:400,each=1000))
Также следует учитывать функцию ddply
из пакета plyr
или функцию group_by()
из dplyr
.
отредактировано для краткости после комментариев Хэдли.
Если вы не знаете, сколько строк в фрейме данных, или если фрейм данных может быть неравной длины по желаемому размеру порции, вы можете сделать
chunk <- 1000
n <- nrow(my_data_frame)
r <- rep(1:ceiling(n/chunk),each=chunk)[1:n]
d <- split(my_data_frame,r)
Вы также можете использовать
r <- ggplot2::cut_width(1:n,chunk,boundary=0)
Для будущих читателей методы, основанные на пакетах dplyr
и data.table
, вероятно, будут (намного) быстрее выполнять групповые операции над фреймами данных.