Я пытаюсь перевести этот базовый c на l oop с помощью пакета purr. Идея состоит в том, чтобы применить функцию, используя элементы фрейма данных в качестве параметров.
Создание фрейма данных для l oop с использованием набора данных mpg
из ggplot2
:
param <- mpg %>% select(manufacturer, year) %>% distinct() %>% rename(man = manufacturer, y = year)
Применяемая функция:
fcn <- function(man, y) {
df <- mpg %>% filter(manufacturer == man & year == y)
mod <- lm(data = df, cty ~ hwy)
out <- summary(mod)
return(out)
}
И l oop для применения fcn
для каждой комбинации man
и y
:
for (i in 1:nrow(param)) {
fcn(man = param$man[i],
y = param$y[i])
}
Я очень новичок, чтобы мурлыкать и бороться с тем, как работают общие спецификации purr :: map. Большое спасибо.
РЕДАКТИРОВАТЬ: Я использовал здесь очень простой пример c с fcn
и param
, чтобы понять, как включить параметры функции (из param
) в спецификацию карты. В результате я не особо интересовался вложением заранее, а только скучным переводом l oop using map, который мог работать для любого короля функций с несколькими параметрами.