Hi,
I’m trying to solve what looks like the same issue as stack overflow article,
but within an lapply:
http://stackoverflow.com/questions/18939254/cant-use-a-variable-as-an-argument-but-can-use-its-value
I’ve replicated the issue with partialPlot below in ‘testFunc’. The lines up to
the final print can’t change (including the substitute). In the first call it
prints out ‘X1’ correctly, in the second it prints out ‘var’. I’ve tried eval,
quote etc as the article suggests. Any ideas?
numObs <- 10
numVars <- 6
dataSet <- data.frame(replicate(numVars,rnorm(numObs)))
# partialPlot(x = model, pred.data = dataSet, x.var = 'X1', plot = F)
testFunc <- function(x, pred.data, x.var, plot=F) {
x.var <- substitute(x.var)
# print(paste('is.character(x.var)', is.character(x.var), 'is.name(x.var)',
is.name(x.var)))
xname <- if (is.character(x.var)) x.var else {
if (is.name(x.var)) deparse(x.var) else {
eval(x.var)
}
}
print(xname)
# print(head(pred.data[,xname]))
}
vars <- names(dataSet)[[1]]
testFunc(x = model, pred.data = dataSet, x.var = local(vars), plot = F)
lapply(vars, function(var) {
# print(paste('var', var))
testFunc(x = model, pred.data = dataSet, x.var = var, plot = F)
})
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.