如何在 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 次浏览

开启你的 职业生涯

完成本课程以通过认证

开始
广告