R 在函数内调用管道时传递参数

R 在函数内调用管道时传递参数,r,dplyr,magrittr,R,Dplyr,Magrittr,我想使用管道操作符%>%编写一个由两个函数组成的函数,这样,例如,以下函数是等效的(假设我称之为%O%): 我希望它朝这个方向(而不是hist%O%sample),因为它将遵循与%%>%%相同的逻辑 我得出了这样的结论: '%O%' <- function(lhs1, rhs1){ return( function(x){ return(x %>% lhs1 %>% rhs1) }) } 我应该怎么做才能让%%>%%函数

我想使用管道操作符
%>%
编写一个由两个函数组成的函数,这样,例如,以下函数是等效的(假设我称之为
%O%
):

我希望它朝这个方向(而不是
hist%O%sample
),因为它将遵循与
%%>%%
相同的逻辑

我得出了这样的结论:

'%O%' <- function(lhs1, rhs1){
    return(
        function(x){
            return(x %>% lhs1 %>% rhs1)
    })
}
我应该怎么做才能让
%%>%%
函数中的
%O%
理解参数?这是一个
eval
quote
问题吗?我也不太明白
%%>%%
是如何读取
lhs
rhs
中的参数的


任何帮助都将不胜感激。非常感谢

以下是一些可能性:

iris[1:4] %>% lapply(FUN = function(x) x %>% sample %>% hist) 

library(gsubfn)
iris[1:4] %>% fn$lapply(FUN = x ~ x %>% sample %>% hist)

library(functional)
iris[1:4] %>% lapply(FUN = Compose(sample, hist))

library(functional)
`%c%` <- Compose
iris[1:4] %>% lapply(FUN = sample %c% hist)
iris[1:4]>%lapply(乐趣=函数(x)x%>%sample%>%hist)
图书馆(gsubfn)
虹膜[1:4]]>%fn$lappy(乐趣=x~x%>%sample%>%hist)
图书馆(功能性)
虹膜[1:4]]>%lapply(乐趣=合成(样本,历史))
图书馆(功能性)
`%c%`%Lappy(乐趣=样本%c%hist)

更新:添加了其他解决方案。

以下是一些可能性:

iris[1:4] %>% lapply(FUN = function(x) x %>% sample %>% hist) 

library(gsubfn)
iris[1:4] %>% fn$lapply(FUN = x ~ x %>% sample %>% hist)

library(functional)
iris[1:4] %>% lapply(FUN = Compose(sample, hist))

library(functional)
`%c%` <- Compose
iris[1:4] %>% lapply(FUN = sample %c% hist)
iris[1:4]>%lapply(乐趣=函数(x)x%>%sample%>%hist)
图书馆(gsubfn)
虹膜[1:4]]>%fn$lappy(乐趣=x~x%>%sample%>%hist)
图书馆(功能性)
虹膜[1:4]]>%lapply(乐趣=合成(样本,历史))
图书馆(功能性)
`%c%`%Lappy(乐趣=样本%c%hist)

更新:添加了其他解决方案。

是否改用
magrittr
功能序列

f <- . %>% sample() %>% hist()

iris[1:4] %>% lapply(f)

是否改用
magrittr
功能序列

f <- . %>% sample() %>% hist()

iris[1:4] %>% lapply(f)

谢谢,这就是我所需要的。我不知道我可以定义这样的函数
magrittr
太棒了!谢谢,这就是我所需要的。我不知道我可以定义这样的函数
magrittr
太棒了!我不知道这些图书馆!马格里特似乎也做得很好。谢谢我不知道这些图书馆!马格里特似乎也做得很好。谢谢
iris[1:4] %>% lapply(. %>% sample() %>% hist())