У меня есть следующая структура данных:
test <- data.frame(
id= rep(1:3, each=20),
count = rnorm(60, mean=5, sd=1),
covar1 = rnorm(60, mean=10, sd=3),
covar2 = rnorm(60, mean=95, sd=5),
covar3 = rnorm(60, mean=30, sd=5)
)
Затем я вкладываю ее в id
:
test <- test %>% nest(-id)
Я хочу применить модель к каждому из данных covar
столбец для данного идентификатора. Затем я хочу сохранить результат в отдельной колонке. Я могу сделать это следующим образом:
test <- test %>% mutate(covar1_lm = map(data, ~lm(count ~ covar1, data=.x)),
covar2_lm = map(data, ~lm(count ~ covar2, data=.x)),
covar3_lm = map(data, ~lm(count ~ covar3, data=.x)))
Что дает результат, который я хочу:
> test
# A tibble: 3 x 5
id data covar1_lm covar2_lm covar3_lm
<int> <list> <list> <list> <list>
1 1 <tibble [20 × 4]> <lm> <lm> <lm>
2 2 <tibble [20 × 4]> <lm> <lm> <lm>
3 3 <tibble [20 × 4]> <lm> <lm> <lm>
Проблема в том, что мои реальные данные имеют большое количество covar
столбцов, и поэтому Я хотел бы сократить шаблонный код. Итак, я предполагаю, что мне нужна какая-то концепция динамических c имен переменных, но я не могу понять, как сопоставить динамический c набор имен столбцов ??