Je peux créer un composer opérateur dans R:
`%c%` = function(x,y)function(...)x(y(...))
Pour être utilisée comme ceci:
> numericNull = is.null %c% numeric
> numericNull(myVec)
[2] TRUE FALSE
mais je voudrais savoir si il y a un officiel ensemble de fonctions pour faire ce genre de chose et d'autres opérations telles que le lancer dans R. en grande partie c'est pour réduire le nombre de tranches, fonction de mots-clés, etc dans mon code.
Mon curry de la fonction:
> curry=function(...){
z1=z0=substitute(...);z1[1]=call("list");
function(...){do.call(as.character(z0[[1]]),
as.list(c(eval(z1),list(...))))}}
> p = curry(paste(collapse=""))
> p(letters[1:10])
[1] "abcdefghij"
C'est particulièrement agréable pour, par exemple, d'agrégation:
> df = data.frame(l=sample(1:3,10,rep=TRUE), t=letters[1:10])
> aggregate(df$t,df["l"],curry(paste(collapse="")) %c% toupper)
l x
1 1 ADG
2 2 BCH
3 3 EFIJ
Je la trouve beaucoup plus élégant et modifiable que:
> aggregate(df$t, df["l"], function(x)paste(collapse="",toupper(x)))
l x
1 1 ADG
2 2 BCH
3 3 EFIJ
Fondamentalement, je veux savoir a déjà été fait pour la R?