在 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
要根据上面创建的数据框中的 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