在 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