我在 R 中有一个矩阵,我想从每一行中抽取一个随机样本。我的一些数据在 NA 中,但是在进行随机采样时,我不希望 NA 成为采样的选项。我将如何实现这个目标?
例如,
a <- matrix (c(rep(5, 10), rep(10, 10), rep(NA, 5)), ncol=5, nrow=5)
a
[,1] [,2] [,3] [,4] [,5]
[1,] 5 5 10 10 NA
[2,] 5 5 10 10 NA
[3,] 5 5 10 10 NA
[4,] 5 5 10 10 NA
[5,] 5 5 10 10 NA
当我将样本函数应用于该矩阵以输出另一个矩阵时,我得到
b <- matrix(apply(a, 1, sample, size=1), ncol=1)
b
[,1]
[1,] NA
[2,] NA
[3,] 10
[4,] 10
[5,] 5
相反,我不希望 NA 能够成为输出,并希望输出类似于:
b
[,1]
[1,] 10
[2,] 10
[3,] 10
[4,] 5
[5,] 10