I have a question regarding passing multiple arguments to a function, when using lapply in R.
When I use lapply with the syntax of lapply(input, myfun); – this is easily understandable, and I can define myfun like that:
myfun <- function(x) {
# doing something here with x
}
lapply(input, myfun);
and elements of input are passed as x argument to myfun.
But what if I need to pass some more arguments to myfunc? For example, it is defined like that:
myfun <- function(x, arg1) {
# doing something here with x and arg1
}
How can I use this function with passing both input elements (as x argument) and some other argument?
If you look up the help page, one of the arguments to
lapplyis the mysterious.... When we look at the Arguments section of the help page, we find the following line:So all you have to do is include your other argument in the
lapplycall as an argument, like so:and
lapply, recognizing thatarg1is not an argument it knows what to do with, will automatically pass it on tomyfun. All the otherapplyfunctions can do the same thing.An addendum: You can use
...when you’re writing your own functions, too. For example, say you write a function that callsplotat some point, and you want to be able to change the plot parameters from your function call. You could include each parameter as an argument in your function, but that’s annoying. Instead you can use...(as an argument to both your function and the call to plot within it), and have any argument that your function doesn’t recognize be automatically passed on toplot.