如何在 R 中解除拆分的 split data.table 物件?


要在 R 中解除拆分的 split data.table 物件,我們可以執行以下步驟 −

  • 首先,建立一個 data.table 物件。

  • 然後,使用 split 函式拆分 data.table 物件。

  • 之後,使用 do.call 函式以及 rbind 函式來解除 data.table 的拆分。

示例

建立 data.table 物件

讓我們建立一個 data.table 物件,如下所示 −

library(data.table)
Grp<-sample(LETTERS[1:4],25,replace=TRUE)
Score<-sample(1:50,25)
DT<-data.table(Grp,Score)
DT

輸出

執行上述指令碼時,會生成如下輸出(此輸出因系統隨機化而異) −

  Grp Score
1:  D 13
2:  D 25
3:  A 21
4:  A  1
5:  C  4
6:  B 16
7:  A 28
8:  A  6
9:  C 26
10: D  2
11: A 47
12: D 38
13: A 49
14: B 31
15: A 36
16: C 41
17: D 24
18: C 27
19: C 34
20: D  7
21: D 42
22: C 14
23: B 44
24: B 30
25: D 19
  Grp Score

拆分 data.table 物件

使用 split 函式拆分 data.table 物件 −

library(data.table)
Grp<-sample(LETTERS[1:4],25,replace=TRUE)
Score<-sample(1:50,25)
DT<-data.table(Grp,Score)
new_DT<-split(DT,DT$Grp)
new_DT

輸出

$A
   Grp Score
1:  A 21
2:  A  1
3:  A 28
4:  A  6
5:  A 47
6:  A 49
7:  A 36
$B
  Grp Score
1:  B 16
2:  B 31
3:  B 44
4:  B 30
$C
   Grp Score
1:  C  4
2:  C 26
3:  C 41
4:  C 27
5:  C 34
6:  C 14
$D
  Grp Score
1:  D 13
2:  D 25
3:  D  2
4:  D 38
5:  D 24
6:  D  7
7:  D 42
8:  D 19

解除 data.table 物件的拆分

使用 do.call 函式以及 rbind 函式解除 data.table 物件 DT 的拆分 −

library(data.table)
Grp<-sample(LETTERS[1:4],25,replace=TRUE)
Score<-sample(1:50,25)
DT<-data.table(Grp,Score)
new_DT<-split(DT,DT$Grp)
do.call("rbind",new_DT)

輸出

  Grp Score
1:  A 21
2:  A  1
3:  A 28
4:  A  6
5:  A 47
6:  A 49
7:  A 36
8:  B 16
9:  B 31
10: B 44
11: B 30
12: C  4
13: C 26
14: C 41
15: C 27
16: C 34
17: C 14
18: D 13
19: D 25
20: D  2
21: D 38
22: D 24
23: D  7
24: D 42
25: D 19
  Grp Score

更新於:2021-11-12

230 次瀏覽

開啟你的 職業生涯

完成本課程以透過認證

開始
廣告
© . All rights reserved.