如何在 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP