In my haste to make a smaller example than my actual code I used 'is.null' instead of 'exists' as is in my code. Here's a small reproducible example
res <- list(abc=letters, ABC=LETTERS) save(res, file="results.RData") res <- list(zyx=rev(letters), ZYX=rev(LETTERS)) save(res, file="results2.RData") rm(res) FILES <- c("results.RData", "results2.RData") c_objects <- function(FILES) { for (FILE in FILES) { load(FILE) if (exists(combined)) { combined <- c(combined, res) } else { combined <- res } } return(combined) } combined_results <- c_objects(FILES) -----Original Message----- From: Duncan Murdoch [mailto:murdoch.dun...@gmail.com] Sent: Monday, June 17, 2013 5:40 PM To: Davis, Brian Cc: r-help@r-project.org Subject: Re: [R] Help understanding environments On 13-06-17 5:02 PM, Davis, Brian wrote: > I have a collection of .RData files that have result objects that I would > like to combine. Specifically, skatCohort objects from the skatMeta package, > but I've run into a similar issue with simple data.frames also. > > If I run something like > > FILES <- list.files(path="/path/to/my/results", pattern=".RData$", > full.names=TRUE) combined <- NULL > for (FILE in FILES) { > load(FILE) > if (!is.null(combined)) { > combined <- c(combined, res) > } else { > combined <- res > } > } > > I get all my objects combined. However, if I wrap this into a > function I get the following error > > c_objects <- function(FILES) { > combined <- NULL > for (FILE in FILES) { > load(FILE) > if (!is.null(combined)) { > combined <- c(combined, res) > } else { > combined <- res > } > } > return(combined) > } > > combined_results <- c_objects(FILES) > Error in eval(expr, envir, enclos) : object 'combined' not found > > How should I write this function such that it can find "combined". I've > tried reading the help on envirnaments, and the exisits function but I > haven't been able to figure this out. Are there any other resources to read > up on this? You are doing something that you aren't showing us: I don't see any calls to eval(), but it's eval() that generated the error. Calling traceback() after the error might be informative. Duncan Murdoch ______________________________________________ R-help@r-project.org mailing list 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.