如何在 R 資料框中建立分組列?
假設我們有一個名為 df 的資料框,它包含兩列,例如 X 和 Y,然後我們可以透過將 df 轉換為 data.table 物件並使用列表函式在 X 和 Y 中建立值列表來建立基於 X 和 Y 的分組列。
檢視下面的示例以瞭解如何完成。
示例 1
以下程式碼片段建立了一個示例資料框 -
x1<-rpois(20,2) x2<-rpois(20,2) df1<-data.frame(x1,x2) df1
建立了以下資料框
x1 x2 1 1 5 2 1 1 3 0 1 4 1 1 5 2 1 6 2 3 7 4 2 8 0 4 9 2 1 10 2 2 11 0 1 12 3 1 13 3 3 14 4 3 15 2 0 16 1 3 17 2 1 18 3 1 19 5 1 20 3 2
要在上面建立的資料框上載入 data.table 物件併為 df1 中的值建立分組列,請將以下程式碼新增到上面的程式碼片段中 -
x1<-rpois(20,2) x2<-rpois(20,2) df1<-data.frame(x1,x2) library(data.table) setDT(df1)[,Group:=.GRP,by=list(x1,x2)] df1
輸出
如果您將以上所有程式碼片段作為單個程式執行,它將生成以下輸出 -
x1 x2 Group 1: 1 5 1 2: 1 1 2 3: 0 1 3 4: 1 1 2 5: 2 1 4 6: 2 3 5 7: 4 2 6 8: 0 4 7 9: 2 1 4 10: 2 2 8 11: 0 1 3 12: 3 1 9 13: 3 3 10 14: 4 3 11 15: 2 0 12 16: 1 3 13 17: 2 1 4 18: 3 1 9 19: 5 1 14 20: 3 2 15
示例 2
以下程式碼片段建立了一個示例資料框 -
y1<-sample(LETTERS[1:4],20,replace=TRUE) y2<-sample(LETTERS[1:4],20,replace=TRUE) df2<-data.frame(y1,y2) df2
建立了以下資料框
y1 y2 1 B C 2 B D 3 D C 4 D B 5 A B 6 D A 7 A C 8 A C 9 D B 10 C C 11 A A 12 C D 13 B C 14 C C 15 A A 16 D B 17 B A 18 C B 19 C B 20 C B
要在上面建立的資料框上為 df2 中的值建立分組列,請將以下程式碼新增到上面的程式碼片段中 -
y1<-sample(LETTERS[1:4],20,replace=TRUE) y2<-sample(LETTERS[1:4],20,replace=TRUE) df2<-data.frame(y1,y2) setDT(df2)[,Group:=.GRP,by=list(y1,y2)] df2
輸出
如果您將以上所有程式碼片段作為單個程式執行,它將生成以下輸出 -
y1 y2 Group 1: B C 1 2: B D 2 3: D C 3 4: D B 4 5: A B 5 6: D A 6 7: A C 7 8: A C 7 9: D B 4 10: C C 8 11: A A 9 12: C D 10 13: B C 1 14: C C 8 15: A A 9 16: D B 4 17: B A 11 18: C B 12 19: C B 12 20: C B 12
廣告