如何按R中的列拆分数据框?
如果我们有一个包含一些重复值或代表类别的数据框列,那么我们可能希望基于该列拆分数据框。
例如,如果我们有一个名为df的数据框,其中包含一列Col,那么我们可以使用下面给出的命令按Col拆分数据框-
split(df,df$Col)
示例1
以下代码段创建了一个示例数据框-
Group<-sample(c("Male","Female"),20,replace=TRUE)
Score<-rpois(20,8)
df1<-data.frame(Group,Score)
df1创建以下数据框-
Group Score 1 Male 8 2 Female 6 3 Female 5 4 Female 7 5 Female 12 6 Female 10 7 Female 9 8 Male 9 9 Male 10 10 Female 13 11 Female 4 12 Male 11 13 Female 5 14 Male 6 15 Female 9 16 Male 9 17 Female 5 18 Female 8 19 Male 3 20 Female 5
要根据Group列拆分df1,请将以下代码添加到上述代码段中-
Group<-sample(c("Male","Female"),20,replace=TRUE)
Score<-rpois(20,8)
df1<-data.frame(Group,Score)
split(df1,df1$Group)输出结果如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
$Female
Group Score
2 Female 6
3 Female 5
4 Female 7
5 Female 12
6 Female 10
7 Female 9
10 Female 13
11 Female 4
13 Female 5
15 Female 9
17 Female 5
18 Female 8
20 Female 5
$Male
Group Score
1 Male 8
8 Male 9
9 Male 10
12 Male 11
14 Male 6
16 Male 9
19 Male 3示例2
以下代码段创建了一个示例数据框-
Class<-sample(c("I","II","III"),20,replace=TRUE)
Number_of_Customers<-sample(1:10,20,replace=TRUE)
df2<-data.frame(Class,Number_of_Customers)
df2创建以下数据框-
Class Number_of_Customers 1 II 2 2 I 10 3 III 2 4 III 4 5 III 5 6 III 7 7 III 10 8 II 4 9 II 9 10 I 7 11 III 4 12 I 1 13 I 1 14 I 1 15 III 5 16 II 5 17 II 9 18 II 8 19 II 8 20 I 9
要根据Class列拆分df2,请将以下代码添加到上面的代码段中-
Class<-sample(c("I","II","III"),20,replace=TRUE)
Number_of_Customers<-sample(1:10,20,replace=TRUE)
df2<-data.frame(Class,Number_of_Customers)
split(df2,df2$Class)输出结果如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
$I Class Number_of_Customers 2 I 10 10 I 7 12 I 1 13 I 1 14 I 1 20 I 9 $II Class Number_of_Customers 1 II 2 8 II 4 9 II 9 16 II 5 17 II 9 18 II 8 19 II 8 $III Class Number_of_Customers 3 III 2 4 III 4 5 III 5 6 III 7 7 III 10 11 III 4 15 III 5