split dataframe by row number in R

r, split

Solution

Assuming that rows `1&2` goes in the first split, `3,4,5,6` in the second and `7 to nrow(df)` goes in the last

 split(df, cumsum(1:nrow(df) %in% v))

but if `1:3` rows are in the first split, then comes `4:7`, and in the third `8 to nrow(df)`

  split(df, cumsum(c(TRUE,(1:nrow(df) %in% v)[-nrow(df)])) )

Or as @James mentioned in the comments,

  split(df, cumsum(1:nrow(df) %in% (v+1)))

Problem

This is probably really simple, but I can't find a solution: ``` df <- data.frame(replicate(10,sample(0:1,10,rep=TRUE))) v <- c(3, 7) ``` is there an elegant way to split this dataframe in three elements (of a list) at the row number specified in v?

Original source