如何在R的data.table物件中透過加法合併兩行?


要在R的data.table物件中透過加法合併兩行,我們可以按照以下步驟操作:

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

  • 然後,使用加號(+)將兩行相加,並將結果儲存在一行中。

  • 之後,使用單方括號進行子集選擇,移除不需要的行。

示例

建立data.table物件

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

library(data.table)
x<-sample(1:5,25,replace=TRUE)
y<-sample(1:5,25,replace=TRUE)
z<-sample(1:5,25,replace=TRUE)
DT<-data.table(x,y,z)
DT

輸出

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出可能因系統而異):

    x y z
1:  3 1 2
2:  2 4 3
3:  3 3 1
4:  1 1 1
5:  1 1 1
6:  5 2 3
7:  2 5 1
8:  2 5 4
9:  4 1 1
10: 1 3 2
11: 1 3 5
12: 4 5 2
13: 4 4 1
14: 2 1 5
15: 1 5 2
16: 3 4 4
17: 5 5 4
18: 2 2 5
19: 1 4 5
20: 4 5 5
21: 4 1 1
22: 5 5 2
23: 4 1 4
24: 1 2 3
25: 4 3 1
    x y z

新增兩行

使用加號將第1行和第2行相加,然後將和儲存在第1行中:

library(data.table)
x<-sample(1:5,25,replace=TRUE)
y<-sample(1:5,25,replace=TRUE)
z<-sample(1:5,25,replace=TRUE)
DT<-data.table(x,y,z)
DT[1,]<-DT[1,]+DT[2,]
DT

輸出

    x y z
1:  5 5 5
2:  2 4 3
3:  3 3 1
4:  1 1 1
5:  1 1 1
6:  5 2 3
7:  2 5 1
8:  2 5 4
9:  4 1 1
10: 1 3 2
11: 1 3 5
12: 4 5 2
13: 4 4 1
14: 2 1 5
15: 1 5 2
16: 3 4 4
17: 5 5 4
18: 2 2 5
19: 1 4 5
20: 4 5 5
21: 4 1 1
22: 5 5 2
23: 4 1 4
24: 1 2 3
25: 4 3 1
    x y z

移除不需要的行

使用單方括號子集選擇從data.table物件DT中移除第2行:

library(data.table)
x<-sample(1:5,25,replace=TRUE)
y<-sample(1:5,25,replace=TRUE)
z<-sample(1:5,25,replace=TRUE)
DT<-data.table(x,y,z)
DT[1,]<-DT[1,]+DT[2,]
DT[-2,]

輸出

    x y z
1:  5 5 5
2:  3 3 1
3:  1 1 1
4:  1 1 1
5:  5 2 3
6:  2 5 1
7:  2 5 4
8:  4 1 1
9:  1 3 2
10: 1 3 5
11: 4 5 2
12: 4 4 1
13: 2 1 5
14: 1 5 2
15: 3 4 4
16: 5 5 4
17: 2 2 5
18: 1 4 5
19: 4 5 5
20: 4 1 1
21: 5 5 2
22: 4 1 4
23: 1 2 3
24: 4 3 1
    x y z

更新於:2021年11月9日

920 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.