随机对具有替换的矩阵的列进行采样,然后以相同的顺序对矢量的元素进行采样 - R.

时间:2017-09-07 17:40:39

标签: r random

我正在执行社区相似度值的bootstrap分析。我有一个物种计数矩阵,其中列代表独特的样本,行代表独特的种类。这是一个例子:

#generate a matrix with 20 columns, 30 rows, random values
set.seed(69) #for reproducibility.
otu <-matrix(rpois(20*30, lambda = 2), ncol=20) 

我有两个与独特样本相关的环境协变量的向量。因此,这些向量中的每一个都是20的长度。

v1 <- rnorm(20)
v2 <- rnorm(20)

我想创建一个新的物种观察矩阵,随机取样otu矩阵的列,并替换。我可以很容易地做到这一点。

#randomnly sample the columns of the otu matrix with replacement.
otu.boot <- otu[,sample(ncol(otu),size=ncol(otu),replace=TRUE)]

我的问题是,如何以与替换矩阵随机抽样的顺序对矢量v1v2进行采样?

1 个答案:

答案 0 :(得分:0)

在评论中关注@ lmo的建议:

#establish a sample order with replacement.
 myOrder <- sample(ncol(otu), replace = T)

#go ahead and submsample both the otu matrix and vectors in that order.
otu.boot <- otu[,myOrder]
 v1.boot <-  v1[myOrder]
 v2.boot <-  v2[myOrder]