基于 R 中的组将带有分组列的数据框转换为列表。
要将具有分组列的数据框转换为基于组的列表,我们可以使用split函数。
例如,如果我们有一个名为df的数据框,其中包含一个分类列(例如Group)和一个数值列(例如DV),那么我们可以使用如下所述的命令将df转换为基于Group列中的组的列表-
split(df$DV,df1$Group).
示例1
以下代码段创建了一个示例数据框-
Group<-sample(LETTERS[1:5],20,replace=TRUE) Response_var<-rpois(20,5) df1<-data.frame(Group,Response_var) df1
创建了以下数据框
Group Response_var 1 B 4 2 E 3 3 C 9 4 D 4 5 C 5 6 A 4 7 B 5 8 D 9 9 E 4 10 A 5 11 C 2 12 B 11 13 E 5 14 E 6 15 D 1 16 B 4 17 E 2 18 B 2 19 D 4 20 A 7
要根据上面创建的数据框中的Group列将df1拆分为一个列表,请将以下代码添加到上面的代码段中-
Group<-sample(LETTERS[1:5],20,replace=TRUE) Response_var<-rpois(20,5) df1<-data.frame(Group,Response_var) split(df1$Response_var,df1$Group) $A输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] 4 5 7
要根据上面创建的数据框中的Group列将df1拆分为一个列表,请将以下代码添加到上面的代码段中-
Group<-sample(LETTERS[1:5],20,replace=TRUE) Response_var<-rpois(20,5) df1<-data.frame(Group,Response_var) split(df1$Response_var,df1$Group) $B输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] 4 5 11 4 2
要根据上面创建的数据框中的Group列将df1拆分为一个列表,请将以下代码添加到上面的代码段中-
Group<-sample(LETTERS[1:5],20,replace=TRUE) Response_var<-rpois(20,5) df1<-data.frame(Group,Response_var) split(df1$Response_var,df1$Group) $C输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] 9 5 2
要根据上面创建的数据框中的Group列将df1拆分为一个列表,请将以下代码添加到上面的代码段中-
Group<-sample(LETTERS[1:5],20,replace=TRUE) Response_var<-rpois(20,5) df1<-data.frame(Group,Response_var) split(df1$Response_var,df1$Group) $D输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] 4 9 1 4
要根据上面创建的数据框中的Group列将df1拆分为一个列表,请将以下代码添加到上面的代码段中-
Group<-sample(LETTERS[1:5],20,replace=TRUE) Response_var<-rpois(20,5) df1<-data.frame(Group,Response_var) split(df1$Response_var,df1$Group) $E输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] 3 4 5 6 2
示例2
以下代码段创建了一个示例数据框-
Class<-sample(c("First","Second","Third","Fourth","Fifth"),20,replace=TRUE) Score<-sample(1:10,20,replace=TRUE) df2<-data.frame(Class,Score) df2
创建了以下数据框
Class Score 1 Third 6 2 Second 2 3 Fourth 3 4 Fifth 2 5 Second 3 6 Fifth 6 7 Fourth 2 8 First 4 9 Third 10 10 Third 5 11 Third 4 12 First 2 13 Third 6 14 Third 5 15 First 1 16 Fourth 4 17 Second 8 18 First 8 19 Second 7 20 Third 10
要将df2拆分为基于上面创建的数据框上的Class列的列表,请将以下代码添加到上面的代码段中-
Class<-sample(c("First","Second","Third","Fourth","Fifth"),20,replace=TRUE) Score<-sample(1:10,20,replace=TRUE) df2<-data.frame(Class,Score) split(df2$Score,df2$Class) $Fifth输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] 2 6
要将df2拆分为基于上面创建的数据框上的Class列的列表,请将以下代码添加到上面的代码段中-
Class<-sample(c("First","Second","Third","Fourth","Fifth"),20,replace=TRUE) Score<-sample(1:10,20,replace=TRUE) df2<-data.frame(Class,Score) split(df2$Score,df2$Class) $First输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] 4 2 1 8
要将df2拆分为基于上面创建的数据框上的Class列的列表,请将以下代码添加到上面的代码段中-
Class<-sample(c("First","Second","Third","Fourth","Fifth"),20,replace=TRUE) Score<-sample(1:10,20,replace=TRUE) df2<-data.frame(Class,Score) split(df2$Score,df2$Class) $Fourth输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] 3 2 4
要将df2拆分为基于上面创建的数据框上的Class列的列表,请将以下代码添加到上面的代码段中-
Class<-sample(c("First","Second","Third","Fourth","Fifth"),20,replace=TRUE) Score<-sample(1:10,20,replace=TRUE) df2<-data.frame(Class,Score) split(df2$Score,df2$Class) $Second输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] 2 3 8 7
要将df2拆分为基于上面创建的数据框上的Class列的列表,请将以下代码添加到上面的代码段中-
Class<-sample(c("First","Second","Third","Fourth","Fifth"),20,replace=TRUE) Score<-sample(1:10,20,replace=TRUE) df2<-data.frame(Class,Score) split(df2$Score,df2$Class) $Third输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] 6 10 5 4 6 5 10