L'équivalent exact magrittr
La syntaxe de ce que vous avez écrit est :
df %>% transform(val1 = NA) %$%
inset(.,Petal.Length < 1.52,"val1","cake") %$%
inset(.,Petal.Length > 1.55 & Petal.Length <= 4.55,"val1","pie") %$%
inset(.,Petal.Length > 4.55,"val1","apple")
Ou pour être vraiment zélé avec magrittr
Les pseudonymes de l'entreprise :
df %>% transform(val1 = NA) %$%
inset(.,Petal.Length %>% is_less_than(1.52),"val1","cake") %$%
inset(.,Petal.Length %>% is_greater_than(1.55) & Petal.Length %>%
is_weakly_less_than(4.55),"val1","pie") %$%
inset(.,Petal.Length %>% is_greater_than(4.55),"val1","apple")
Et une variante :
df %>% transform(val1 = NA) %$%
inset(.,Petal.Length %>% is_less_than(1.52),"val1","cake") %$%
inset(.,Petal.Length %>% {is_greater_than(.,1.55) & is_weakly_less_than(.,4.55)},"val1","pie") %$%
inset(.,Petal.Length %>% is_greater_than(4.55),"val1","apple")
Les deux premières sont strictement équivalentes à celle-ci en base (sauf pour les tuyaux !) :
df %>% transform(val1 = NA) %$%
`[<-`(.,Petal.Length < 1.52,"val1","cake") %$%
`[<-`(.,Petal.Length > 1.55 & Petal.Length <= 4.55,"val1","pie") %$%
`[<-`(.,Petal.Length > 4.55,"val1","apple")
La variante est équivalente à ceci :
df %>% transform(val1 = NA) %$%
`[<-`(.,Petal.Length < 1.52,"val1","cake") %$%
`[<-`(.,Petal.Length %>% {`>`(.,1.55) & `<=`(.,4.55)},"val1","pie") %$%
`[<-`(.,Petal.Length > 4.55,"val1","apple")
J'ai utilisé transform
parce que c'est un base
fonction pendant que mutate
es un dplyr
mais ils fonctionnent de la même manière ici.
Pour une définition de tous les alias, voir : ?extract