I am using the randomForest
package (v. 4.6-7) in R 2.15.2. I cannot find the source code for the partialPlot
function and am trying to figure out
The source code for partialPlot()
is found by entering
randomForest:::partialPlot.randomForest
into the console. I found this by first running
methods(partialPlot)
because entering partialPlot
only tells me that it uses a method. From the methods
call we see that there is one method, and the asterisk next to it tells us that it is a non-exported function. To view the source code of a non-exported function, we use the triple-colon operator :::
. So it goes
package:::generic.method
Where package
is the package, generic
is the generic function (here it's partialPlot
), and method
is the method (here it's the randomForest
method).
Now, as for the other questions, the function can be written with do.call()
and you can pass w
without a wrapper.
f <- function(w) {
do.call("partialPlot", list(x = rf, pred.data = iris, x.var = w))
}
f(x1)
This works on my machine. It's not so much environments as it is evaluation. Many plotting functions use some non-standard evaluation, which can be handled most of the time with this do.call()
construct.
But note that outside the function you can also use eval()
on x1
.
partialPlot(x = rf, pred.data = iris, x.var = eval(x1))
I don't really see a reason to check for the presence of as.character()
inside the function. If you can leave a comment we can go from there if you need more info. I'm not familiar enough with this package yet to go any further.