Как сделать комбинацию образца и воспроизводимости? - PullRequest
0 голосов
/ 31 октября 2018

Ниже приведены функции для начальной загрузки, но как я могу сделать воспроизводимый результат? Я пробовал set.seed (), но это не работает, потому что каждый раз, когда lapply вызывает функцию boot.lm.vector, функция только что создала один имитированный набор и вычислила коэффициенты один раз. Есть ли в R что-то, что может функционировать как начальный список? или любой другой способ сделать результат воспроизводимым?

boot.lm.vector <- function(index, inputData) {
  d <- inputData[sample.int(nrow(inputData), replace = T),]
  a <- ncol(inputData)-1    
  X <- d[, 1:a]    
  y <- d[, a+1]
  solve(crossprod(X), crossprod(X,y))
}

rtest <- lapply(1:10000, fun = boot.lm.vector, inputData = boot_set) 
rtestdf <- plyr::ldply(rtest)

1 Ответ

0 голосов
/ 31 октября 2018

Если вы установите seed с помощью index внутри вашей функции , вы сможете воспроизвести ее. Пустышка boot.lm.vector функция ниже:

## samples 1 item from inputData
boot.lm.vector <- function(index, inputData) {
                                              set.seed(index)
                                              return(sample(inputData, 1)) 
                                              }

## iterating 5 times: use lapply as per your requirement
test <- sapply(1:5, FUN = boot.lm.vector, inputData = 1:10) 
test
[1] 3 2 2 6 3                                 # reproducible result
...