如何在R中将大数据帧拆分为较小的数据帧?

处理大数据帧不是一件容易的事,因此我们可能希望将其拆分为一些较小的数据帧。这些较小的数据帧可以基于某些条件(例如因子变量的级别)或在某些其他条件下从大型数据帧中提取。这可以通过使用拆分功能来完成。

示例

请看以下数据帧-

> set.seed(1)
> Grades<-rep(c("A","B","C","D","E"),times=10)
> Age<-sample(1:30,50,replace=TRUE)
> Category<-sample(1:10,50,replace=TRUE)
> df<-data.frame(Grades,Age,Category)
> head(df,20)
  Grades Age Category
1    A    25    6
2    B     4    9
3    C     7    8
4    D     1    9
5    E     2    7
6    A    29    8
7    B    23    6
8    C    11   10
9    D    14    7
10   E    18    3
11   A    27   10
12   B    19    6
13   C     1    8
14   D    21    2
15   E    21    2
16   A    10    6
17   B    22    6
18   C    14    1
19   D    10    3
20   E     7    3

根据等级划分数据框-

> Split_based_on_Grades<-split(df,f=df$Grades)
> Split_based_on_Grades
$A
    Grades Age Category
1     A    25    6
6     A    29    8
11    A    27   10
16    A    10    6
21    A     9    8
26    A    25    7
31    A    10    9
36    A     1    1
41    A    10    7
46    A    20   10
$B
    Grades Age Category
2     B     4    9
7     B     23   6
12    B     19   6
17    B     22   6
22    B     15   6
27    B     14   1
32    B     30   7
37    B     20   5
42    B      6   7
47    B     26  10
$C
    Grades Age Category
3     C      7   8
8     C     11  10
13    C      1   8
18    C     14   1
23    C     21   7
28    C      5   4
33    C     25   4
38    C      3   6
43    C     15   3
48    C     12   7
$D
    Grades Age Category
4     D      1   9
9     D     14   7
14    D     21   2
19    D     10   3
24    D      5   6
29    D      5   8
34    D     12   7
39    D      6   1
44    D     20   6
49    D     25   3
$E
    Grades Age Category
5     E      2   7
10    E     18   3
15    E     21   2
20    E      7   3
25    E      9   8
30    E      2   9
35    E     15   6
40    E     10   9
45    E     28   2
50    E     23   2

现在我们可以访问每个成绩,如下所示-

> Split_based_on_Grades[[1]]
   Grades Age Category
1     A    25   6
6     A    29   8
11    A    27  10
16    A    10   6
21    A     9   8
26    A    25   7
31    A    10   9
36    A     1   1
41    A    10   7
46    A    20  10
> Split_based_on_Grades[[4]]
   Grades Age Category
4     D     1    9
9     D    14    7
14    D    21    2 
19    D    10    3
24    D     5    6
29    D     5    8
34    D    12    7
39    D     6    1
44    D    20    6
49    D    25    3