【发布时间】:2016-03-04 11:20:06
【问题描述】:
我有这段代码,我希望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)))
}
(mydf2allt 由两列数字组成。)
这是用一个 foo 循环做我希望它在没有一个 foo 循环的情况下做的事情:
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))
}
}
【问题讨论】:
-
?set.seed? '相同的数字,但不同的值' 是什么意思?这似乎相互矛盾。 -
我现在试着澄清一下。在第一次复制中,我希望在两个地方使用 365 个随机值。在第二次复制中,我希望在同一个地方使用 365 个新的随机值,依此类推。