4 votes

Comment ajouter une colonne en utilisant le vecteur de mappage après purrr::map_df

J'utilise l'ensemble de données mtcars comme exemple pour illustrer ma question. J'ai effectué une régression linéaire sur chaque type de cylindre et j'ai rassemblé tous les résultats du modèle en utilisant map_df. (Code et résultats ci-dessous). Ce que je veux faire, c'est ajouter une autre colonne nommée 'cylindre' (4,4,6,6,8,8). Comment puis-je faire cela dans map_df ? Lorsque j'ajoute l'argument .id='cylinder', je n'obtiens qu'une colonne de 1,1,2,2,3,3. Merci beaucoup par avance.

library(purrr)
cyls <- c(4,6,8)
map_df(cyls, ~tidy(lm(hp~wt,data=mtcars %>% filter(cyl == .x))))

enter image description here

4voto

Tung Points 7486

Utilisation de set_names devrait le faire

cyls %>% 
  set_names() %>% 
  map_df(., ~tidy(lm(hp~wt,data=mtcars %>% filter(cyl == .x))), .id = "cyls")

  cyls        term   estimate std.error   statistic
1    4 (Intercept)  69.204726  28.41355  2.43562436
2    4          wt   5.876308  12.09420  0.48587823
3    6 (Intercept) 187.273314  90.85245  2.06129062
4    6          wt -20.848451  28.98418 -0.71930440
5    8 (Intercept) 204.484626  78.77132  2.59592744
6    8          wt   1.182647  19.37501  0.06103983
     p.value
1 0.03763378
2 0.63866393
3 0.09427827
4 0.50415924
5 0.02340090
6 0.95233233

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X