我有一个这样的数据框:
A B C D E
e1 4 3 2 3 13
e2 21 17 5 12 19
e3 13 5 4 12 9
e4 30 18 7 7 30
e5 6 20 1 1 11
e6 16 12 6 8 23
e7 22 16 6 6 22
e8 2 11 1 2 11
e9 5 15 5 0 26
e10 21 19 6 2 22
e11 14 20 6 6 21
并给出一个数字X,如果想要做这个大小为X行的数据帧的子集。例如,il X = 2,我想有e1 + e2,e3 + e4等。
有一种简单的方法吗?
答案 0 :(得分:1)
您可以像这样使用split
。然后,您可以访问列表元素,如下所示:df1[[1]]
。
df1 <- read.table(text="row A B C D E
e1 4 3 2 3 13
e2 21 17 5 12 19
e3 13 5 4 12 9
e4 30 18 7 7 30
e5 6 20 1 1 11
e6 16 12 6 8 23
e7 22 16 6 6 22
e8 2 11 1 2 11
e9 5 15 5 0 26
e10 21 19 6 2 22
e11 14 20 6 6 21",header=TRUE,stringsAsFactors=FALSE)
n <- 2
split(df1, rep(1:(nrow(df1)/n+nrow(df1)%%n),each=n))
$`1`
row A B C D E
1 e1 4 3 2 3 13
2 e2 21 17 5 12 19
$`2`
row A B C D E
3 e3 13 5 4 12 9
4 e4 30 18 7 7 30
$`3`
row A B C D E
5 e5 6 20 1 1 11
6 e6 16 12 6 8 23
$`4`
row A B C D E
7 e7 22 16 6 6 22
8 e8 2 11 1 2 11
$`5`
row A B C D E
9 e9 5 15 5 0 26
10 e10 21 19 6 2 22
$`6`
row A B C D E
11 e11 14 20 6 6 21