如何在 R 中將一個大型資料框拆分成較小的資料框?
處理大型資料框並非易事,因此我們可能需要將其拆分成一些較小的資料框。這些較小的資料框可根據某些條件從較大的資料框中提取,例如因子變數的級別或其他一些條件。這可以透過使用 split 函式來完成。
示例
考慮以下資料框 -
> 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
廣告