在 R 中,将包含分组列的数据框根据分组转换为列表。
为了将包含分组列的数据框根据分组转换为列表,我们可以使用 split 函数。
例如,如果我们有一个名为 df 的数据框,其中包含一个分类列(例如 Group)和一个数值列(例如 DV),那么我们可以使用下面提到的命令,根据 Group 列中的分组将 df 转换为列表:
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
要在上面创建的数据框中,根据 Class 列将 df2 分割成列表,请将以下代码添加到上面的代码片段中:
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
要在上面创建的数据框中,根据 Class 列将 df2 分割成列表,请将以下代码添加到上面的代码片段中:
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
要在上面创建的数据框中,根据 Class 列将 df2 分割成列表,请将以下代码添加到上面的代码片段中:
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
要在上面创建的数据框中,根据 Class 列将 df2 分割成列表,请将以下代码添加到上面的代码片段中:
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
要在上面创建的数据框中,根据 Class 列将 df2 分割成列表,请将以下代码添加到上面的代码片段中:
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