如何替換一個包含 data.table 物件的 R 列表中的 NA 為 0?
如需在包含 data.table 物件的 R 列表中將 NA 替換為 0,我們可以按照以下步驟操作-
首先,建立一個包含一些 NA 的 data.table 物件列表。
然後,使用 lapply 函式和 is.na 函式替換列表中的 NA 為 0。
示例
建立列表
讓我們建立一個如下所示的列表-
library(data.table) DT1<- data.table(x1=sample(c(NA,rpois(5,5)),15,replace=TRUE),x2=sample(c(NA,rpois(5,1)),1 5,replace=TRUE)) DT2< data.table(Y1=sample(c(NA,rpois(2,2)),15,replace=TRUE),Y2=sample(c(NA,rpois(2,5)), 15,replace=TRUE)) List<-list(DT1,DT2) List
輸出
執行後,以上指令碼會生成以下輸出(此輸出會在您的系統上因隨機化而有所不同)-
[[1]]
x1 x2
1: NA 0
2: 6 0
3: 7 0
4: 10 2
5: 7 0
6: 10 0
7: NA 0
8: 7 2
9: 10 NA
10: 7 0
11: 6 0
12: 10 NA
13: 7 0
14: 7 2
15: 6 NA
[[2]]
Y1 Y2
1: NA NA
2: 4 4
3: 4 4
4: NA 3
5: 4 NA
6: NA NA
7: 4 NA
8: 1 4
9: 1 3
10: 1 NA
11: NA 4
12: 1 4
13: 1 NA
14: NA 3
15: NA NA用 0 替換 NA
使用 lapply 函式和 is.na 函式,在列表中將 NA 替換為 0,如下所示-
library(data.table)
DT1<-
data.table(x1=sample(c(NA,rpois(5,5)),15,replace=TRUE),x2=sample(c(NA,rpois(5,1)),1
5,replace=TRUE))
DT2<-
data.table(Y1=sample(c(NA,rpois(2,2)),15,replace=TRUE),Y2=sample(c(NA,rpois(2,5)),
15,replace=TRUE))
List<-list(DT1,DT2)
lapply(List, function(x) {x[is.na(x)] <- 0; x})輸出
[[1]]
x1 x2
1: 0 0
2: 6 0
3: 7 0
4: 10 2
5: 7 0
6: 10 0
7: 0 0
8: 7 2
9: 10 0
10: 7 0
11: 6 0
12: 10 0
13: 7 0
14: 7 2
15: 6 0
[[2]]
Y1 Y2
1: 0 0
2: 4 4
3: 4 4
4: 0 3
5: 4 0
6: 0 0
7: 4 0
8: 1 4
9: 1 3
10: 1 0
11: 0 4
12: 1 4
13: 1 0
14: 0 3
15: 0 0
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP