Я хочу получить чистую структуру данных, подобную приведенной ниже:
N | r | data | stat
---------------------------------
10 | 0.2 | <tibble> | 0.5
20 | 0.3 | <tibble> | 0.86
...
data
генерируется из параметров в первых столбцах, а stat
вычисляется на data
. Если у меня есть первые два столбца, как мне добавить таблицы данных?
В качестве минимального примера, вот функция для создания двух коррелированных столбцов:
correlated_data = function(N, r) {
MASS::mvrnorm(N, mu=c(0, 4), Sigma=matrix(c(1, r, r, 1), ncol=2))
}
Запустив это для всех комбинаций N
и r
, я начинаю с выполнения
# Make parameter combinations
expand.grid(N=c(10,20,30), r=c(0, 0.1, 0.3)) %>%
group_by(N, r) %>%
expand(set=1:100) %>% # create 100 of each combination
# HERE! How to add a N x 2 tibble to each row?
rowwise() %>%
mutate(data=correlate_data( N, r))
# Compute summary stats on each (for illustration only; not tested)
mutate(
stats = map(data, ~cor.test(.x[, 1], .x[, 2])), # Correlation on each
tidy_stats = map(stats, tidy)) # using broom package
У меня есть больше параметров (N, r, распределение), и я буду вычислять больше сводок. Если альтернативные рабочие процессы лучше, я тоже приветствую это.