我们如何才能仅对非NA元素进行重采样,并获得另一个10x10的矩阵,其中NA更低?
addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.1.0")
答案 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
替换相同的值。