[R] partialPlot within a function
Micha Silver
t@vib@r @ending from gm@il@com
Sat Sep 1 22:32:26 CEST 2018
I am running randomForest regressions in a loop, passing a different
data.frame each time, and trying to plot importance and partial
dependency plots for all variables in the data.frame. The commands all
run OK when typed at the prompt, but when I wrap them into a function,
the partialPlot function fails with:
Error in eval(x.var) : object 'impvar' not found
It seems that the x.var parameter is getting the variable name
(impvar[i] in this case) rather than the value of the variable.
What am I missing here?
The easiest way to see this is using the example right from the
partialPlot help page, but wrapped into a function:
##--------------------------
library(randomForest)
## Looping over variables ranked by importance:
do_pdp <- function(dta) {
dta <- na.omit(dta)
set.seed(131)
ozone.rf <- randomForest(Ozone ~ ., dta, importance=TRUE)
imp <- importance(ozone.rf)
impvar <- rownames(imp)[order(imp[, 1], decreasing=TRUE)]
op <- par(mfrow=c(2, 3))
for (i in seq_along(impvar)) {
partialPlot(ozone.rf, dta, impvar[i], xlab=impvar[i],
main=paste("Partial Dependence on", impvar[i]),
ylim=c(30, 70))
}
par(op)
}
data(airquality)
do_pdp(airquality)
##--------------------------
Fails with the above message above for me. Running the commands
directly, without the "do_pdp" function works fine, of course.
sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Linux Mint 19
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] randomForest_4.6-14
loaded via a namespace (and not attached):
[1] compiler_3.5.1 tools_3.5.1
Thanks
--
Micha Silver
Ben Gurion Univ.
Sde Boker, Remote Sensing Lab
cell: +972-523-665918
More information about the R-help
mailing list