如何在 R 中拆分拆分的 data.table 对象?

要data.table在 R 中拆分拆分对象,我们可以按照以下步骤操作 -

  • 首先,创建一个data.table对象。

  • 然后,使用拆分功能拆分data.table对象。

  • 之后,使用do.call函数和 rbind 函数解开数据帧。

示例

创建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
输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

  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对象

使用拆分功能拆分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

猜你喜欢