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