Je voudrais passer une liste de noms de col à une formule purrr :: map. Voici un reprex de ma question:Comment transmettre une liste de noms de colonnes df à une formule purrr :: map?
library(dplyr)
library(purrr)
#Make a toy df of w vars of 2 levels
cars <- mtcars %>%
select(mpg, cyl, carb) %>%
filter(cyl == 4 | cyl == 6,
carb == 2 | carb == 4)
#normal fn call, works fine
t.test(mpg ~ cyl, data = cars)
t.test(mpg ~ carb, data = cars)
Welch Two Sample t-test
data: mpg by cyl
t = 3.5371, df = 7.0689, p-value = 0.009356
Welch Two Sample t-test
data: mpg by carb
t = 3.5371, df = 7.0689, p-value = 0.009356
#Make list of cols
list_vars <- names(cars[,-1])
list_vars
[1] "cyl" "carb"
#Attempt map with formula fn call
map(list_vars, ~ t.test(mpg ~ .x, data = cars))
#Results in this error
Error in model.frame.default(formula = mpg ~ .x, data = cars) :
variable lengths differ (found for '.x')
Je sais qu'il ya un nouveau monde de « quosure » avec dplyr 0,7 programmation, mais cela semble quelque chose qui serait assez commun et que antidater. Merci pour toute aide.
Vous pouvez construire la formule via '' paste' avec formula': carte '(de list_vars, ~ t.test (formule (pâte ("mpg ~", .x)) , data = cars)) ' – aosmith