如何从R中大小为N的数据帧中获取大小为n的所有可能的子样本?

时间:2012-11-27 03:51:18

标签: r vector dataframe sample

我有一个包含20个教室[1到20]索引的数据框和每个班级20个不同数量的学生,如何获得大小为n = 8的所有子样本并存储它们,因为我想稍后使用它们进行计算。我使用combn()但只需要一个向量,我可以将它与数据帧一起使用吗? (抱歉,我是R的新人), 数据框如下:

   classrooms students
1           1       29
2           2       30
3           3       35
4           4       28
5           5       32
6           6       20
7           7       25
8           8       22
9           9       32
10         10       26
11         11       27
12         12       34
13         13       27
14         14       28
15         15       33
16         16       21
17         17       36
18         18       24
19         19       19
20         20       32

1 个答案:

答案 0 :(得分:4)

就像将函数传递给combn一样简单。 simplify = FALSE表示将返回一个列表。

假设您想要数据集课堂中8个教室的所有可能组合

 combinations <- combn(nrow(classrooms), 8, function(x,data) data[x,], 
                  simplify = FALSE, data =classrooms )

 head(combinations, n = 2)

[[1]]
  classrooms students
1          1       29
2          2       30
3          3       35
4          4       28
5          5       32
6          6       20
7          7       25
8          8       22

[[2]]
  classrooms students
1          1       29
2          2       30
3          3       35
4          4       28
5          5       32
6          6       20
7          7       25
9          9       32