如何在 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