如何在 R 中的 data.table 物件中為二元列建立順序索引值,並將 0 分配給資料中的 FALSE 值?


為了在 R 中的 data.table 物件中為二元列建立順序索引值,並將 0 分配給 FALSE 值,我們可以遵循以下步驟:−

  • 首先,建立一個包含二元列的 data.table 物件。

  • 然後,使用 rle 函式以及 sequence 和 lengths 函式來建立順序索引列。

示例

建立 data.table 物件

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

library(data.table)
x<-sample(c(TRUE,FALSE),25,replace=TRUE)
DT<-data.table(x)
DT

輸出

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出在您的系統上可能會有所不同):−

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

建立順序索引列

使用 rle 函式以及 sequence 和 lengths 函式為 data.table 物件 DT 中的列 x 建立順序索引列:−

library(data.table)
x<-sample(c(TRUE,FALSE),25,replace=TRUE)
DT<-data.table(x)
DT$Index<-with(rle(DT$x),sequence(lengths)*DT$x)
DT

輸出

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

更新於: 2021-11-09

70 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告