我有这段代码,我希望sample(1:3650, 365, replace=T)
在两个实例上生成相同的数字,但每个复制的值都不同。因此,对于每次复制,我生成365个随机值,这些值同时用于mydf1allt和mydf2allt,但每个复制的365值不同。由于它们之间存在相关性,我想捕获它。这是我尝试为双变量引导程序创建函数。我知道如何使用for循环来解决这个问题,但它需要永远运行,所以没有它可以很好。
listboot1sl = c()
listboot2sl = c()
pairbootstrap2 <- function(y) {
.GlobalEnv$listboot1sl <- replicate(10**y, rbind(listboot1sl, max(sum(mydf1allt[,2][sample(1:3650, 365, replace=T)])-17980405,0)))
.GlobalEnv$listboot2sl <- replicate(10**y, rbind(listboot2sl, max(sum(mydf2allt[,2][sample(1:3650, 365, replace=T)])-137376627,0)))
}
(mydf2all由两列数字组成。)
这是一个foor循环做我想要它没有foor循环的事情:
pairbootstrap2 <- function(y) {
for (i in 1:10**y){
z <- sample(1:3650, 365, replace=T)
.GlobalEnv$listboot1sl <- rbind(listboot1sl, max(sum(mydf1allt[,2][z])-17980405,0))
.GlobalEnv$listboot2sl <- rbind(listboot2sl, max(sum(mydf2allt[,2][z])-137376627,0))
}
}
答案 0 :(得分:0)
我用以下方法解决了它:
mydfboth <- cbind(mydf1allt[,2], mydf2allt[,2])
list <- replicate(10**6, colSums(mydfboth[sample(1:3650, 365, replace=T),]))