Bootstrap t.test: использование функции применения для нескольких уровней группировки - PullRequest
0 голосов
/ 21 марта 2019

Мне нужно загрузить свою «автоматизированную» функцию lapply t.test, чтобы вычислить статистику Bootstrap (оригинал, смещение и стандартная ошибка). Вот базовый код t.test, который я получил до сих пор (без начальной загрузки):

# create data
val<-runif(60, min = 0, max = 100)
distance<-floor(runif(60, min=1, max=3))
phase<-rep(c("a", "b", "c"), 20)
color<-rep(c("red", "blue","green","yellow","purple"), 12)

df<-data.frame(val, distance, phase, color)

# run function to obtain t.tests
lapply(split(df, list(df$color, df$phase)), function(d) {
  tryCatch({ t.test(val ~ distance, var.equal=FALSE, data=d) },
       error = function(e) NA)
})

Это прекрасно работает, но я не уверен, как я мог бы включить метод начальной загрузки в эту функцию применения.

1 Ответ

0 голосов
/ 21 марта 2019

Может быть, что-то вроде следующего делает то, что вы хотите.Обратите внимание, что возвращаемое значение представляет собой список списков объектов класса "htest" (которые являются списками) или NA.

boot_fun <- function(DF){
  n <- nrow(DF)
  i <- sample(n, n, TRUE)
  df <- DF[i, ]
  lapply(split(df, list(df$color, df$phase)), function(d) {
    tryCatch({ t.test(val ~ distance, var.equal=FALSE, data=d) },
             error = function(e) NA)
  })
}

set.seed(1234)
R <- 10
result <- lapply(seq_len(R), function(i) boot_fun(df))
...