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?