Вы можете попробовать это
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
тех же значений.