R:对具有多次替换的载体进行取样

srm*_*ahy 10 r

我想用一个长度为7的向量x进行采样,然后用10个单独的样本进行采样.我尝试了类似下面的东西,但无法得到我想要的结果7x10输出.这会生成1x7向量,但我无法弄清楚其他9个向量

x <- runif(7, 0, 1)
for(i in 1:10){
    samp <- sample(x, size = length(x), replace = T)
}
Run Code Online (Sandbox Code Playgroud)

jor*_*ran 28

这是一种非常方便的方法:

replicate(10,sample(x,length(x),replace = TRUE))
Run Code Online (Sandbox Code Playgroud)


Tom*_*mmy 5

由于您似乎想要进行替换采样,因此您可以一次获取 7*10 个样本(这对于大尺寸更有效):

x <- runif(7)
n <- 10
xn <- length(x)
matrix(x[sample.int(xn, xn*n, replace=TRUE)], nrow=xn)

# Or slightly shorter:
matrix(sample(x, length(x)*n, replace=TRUE), ncol=n)
Run Code Online (Sandbox Code Playgroud)

第二个版本sample直接使用,但是存在一些问题:如果x是长度为1的数字,就会发生不好的事情。sample.int更安全。

x <- c(pi, -pi)
sample(x, 5, replace=T) # OK
x <- pi
sample(x, 5, replace=T) # OOPS, interpreted as 1:3 instead of pi...
Run Code Online (Sandbox Code Playgroud)