如何在 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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP