Я загружаюсь с помощью пакета infer. Интересующая статистика c представляет собой среднее значение, примерные данные приведены в виде таблицы с 3 столбцами и 5 строками. У моего настоящего тибля 86 строк и 40 столбцов. Для каждого столбца я хочу выполнить имитацию bootstrap, как показано ниже для столбца "x" в таблице "test_tibble".
library(infer)
library(tidyverse)
test_tibble <- tibble(x = 1:5, y = 6:10, z = 11:15)
# A tibble: 5 x 3
x y z
<int> <int> <int>
1 1 6 11
2 2 7 12
3 3 8 13
4 4 9 14
5 5 10 15
specify(test_tibble, response = x) %>%
generate(reps = 100, type = "bootstrap") %>%
calculate(stat = "mean") %>%
summarise(
lower_CI = quantile(probs = 0.025, stat),
upper_CI = quantile(probs = 0.975, stat)
)
# A tibble: 1 x 2
lower_CI upper_CI
<dbl> <dbl>
1 2.10 4
Сейчас я ищу способ сделать то же самое для другие столбцы в моей таблице. Я попытался for-l oop, как это:
for (i in 1:ncol(test_tibble)){
var_name <- names(test_tibble)[i]
specify(test_tibble, response = var_name) %>%
generate(reps = 100, type = "bootstrap") %>%
calculate(stat = "mean") %>%
summarise(
lower_CI = quantile(probs = 0.025, stat),
upper_CI = quantile(probs = 0.975, stat)
)
}
К сожалению, это возвращает следующую ошибку
Error: The response variable `var_name` cannot be found in this dataframe.
Есть ли способ перебора столбцов x, y и z, не вводя их вручную в качестве аргументов для «ответа»? Это было бы довольно утомительно для 40 столбцов.