operator - %>% r
Operadores aritméticos de cadena en dplyr con%>% pipe (2)
O use los Aliases
en el paquete magrittr
, por ejemplo:
1:10 %>% multiply_by(2)
# [1] 2 4 6 8 10 12 14 16 18 20
1:10 %>% add(2)
# [1] 3 4 5 6 7 8 9 10 11 12
Los Aliases
incluyen ''palabras'' para operadores booleanos, extracción / reemplazo y operadores aritméticos
Me gustaría entender por qué, en el paquete dplyr
o magrittr
, y más específicamente la función de encadenamiento %>%
tiene algún problema con los operadores básicos +
, -
, *
y /
El encadenamiento toma la salida de la declaración anterior y la alimenta como primer argumento del siguiente:
1:10 %>% sum
# [55]
Entonces, ¿cómo es que esto no funciona?
1:10 %>% *2 %>% sum
1:10 %>% .*2 %>% sum
También encontré que la siguiente sintaxis funciona para sumar / restar, pero no multiplicar o dividir. ¿porque?
1:10 %>% +(2) # works OK
1:10 %>% *(2) # nope...
Entonces, ¿debo escribir una función anónima incluso para hacer una operación *2
en mi data.frame?
1:10 %>% (function(x) x*2) %>% sum
Gracias, no pude encontrar la respuesta en otras preguntas de SO.
Rodee a los operadores con comillas o cotizaciones, y las cosas deberían funcionar como se espera:
1:10 %>% `*`(2) %>% sum
# [1] 110
1:10 %>% `/`(2) %>% sum
# [1] 27.5