对矩阵中的非NA进行重采样

时间:2018-05-17 22:00:00

标签: r dataset bootstrap-4 resampling statistics-bootstrap

我们如何才能仅对非NA元素进行重采样,并获得另一个10x10的矩阵,其中NA更低?

addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.1.0")

1 个答案:

答案 0 :(得分:2)

你可以试试这个

mymatrix <- matrix(c(1:3, NA, 4:5, NA, NA, 6, NA, NA, NA, NA, NA, NA, NA), nrow = 4)
mymatrix
#     [,1] [,2] [,3] [,4]
#[1,]    1    4    6   NA
#[2,]    2    5   NA   NA
#[3,]    3   NA   NA   NA
#[4,]   NA   NA   NA   NA

set.seed(1)
mymatrix[!is.na(mymatrix)] <- sample(x = mymatrix[!is.na(mymatrix)],
                                     size = sum(!is.na(mymatrix)),
                                     replace = FALSE)
mymatrix
#     [,1] [,2] [,3] [,4]
#[1,]    2    4    5   NA
#[2,]    6    1   NA   NA
#[3,]    3   NA   NA   NA
#[4,]   NA   NA   NA   NA

将矩阵中不是NA的值替换为mymatrix[!is.na(mymatrix)],但sample替换相同的值。