Я хотел написать функцию, которая представляет собой состав из двух функций, используя оператор трубы %>%
, так что, например, следующие эквиваленты (представьте, что я называю это %O%
):передать аргументы, когда труба вызвана внутри функции
iris[1:4] %>% lapply(FUN = function(x) hist(sample(x))
iris[1:4] %>% lapply(FUN = sample %O% hist)
Я хочу его в этом направлении (не hist %O% sample
), потому что он будет следовать той же логике, как %>%
.
Я пришел к чему-то вроде этого:
'%O%' <- function(lhs1, rhs1){
return(
function(x){
return(x %>% lhs1 %>% rhs1)
})
}
Однако, это вызывает ошибки при попытке
iris[1:4] %>% lapply(FUN = sample(size = 100, replace = TRUE) %O% hist)
Что я должен сделать, чтобы параметры, которые будут поняты %>%
внутри %O%
функция? Это проблема eval
и quote
? Я также не совсем понимаю, как %>%
способен читать аргументы в lhs
и rhs
.
Любая помощь будет оценена по достоинству. Большое спасибо!
Спасибо, вот и все, что мне нужно. Не знал, что я могу определить такие функции. 'magrittr' - это потрясающе! –