The trick you are looking for is perhaps to use do.call
which lets you call a function and specify the arguments as a list:
wrapperfX <- function(x){
dots<-if(missing(x)){
list()
}else{
list(x=x)
}
do.call(targetf,dots)
}
This lets you specify named arguments as well if the list elements have names.
> do.call(log,list(x=10,base=10))
[1] 1
is equivalent to
log(x=10,base=10)
If the function you are calling is expressed in terms of dot-dot-dots, then the arguments will me matched in the same way as if you'd put them in the function call.
[also you had a missing parenthesis in, appropriately, missing((x){
:) ]