Hello R users, I encountered a strange problem while writing a package that uses the nlme function. First, I wrote some code that uses the nlme function, and it ran without errors. However, when I tried to put the code into a package, the nlme function was unable to locate a function that was used in the formula. Could it be that nlme is looking in the wrong environment? I would appreciate any suggestions. Below is a reproducible example with the problem.
########### BEGIN EXAMPLE ############## #' Fake package to show nlme error #' @export main_function <- function(x){ library(nlme) result <- nlme(height ~ SSasymp(age, Asym, R0, lrc) + nonlinear_function(age), data = Loblolly, fixed = Asym + R0 + lrc ~ 1, random = Asym ~ 1, start = c(Asym = 103, R0 = -8.5, lrc = -3.3)) result } nonlinear_function <- function(x){ log(x) } ########### END EXAMPLE ############## The above code can be installed as a package and run with the commands library(devtools) library(roxygen2) setwd("C:/test") # or any prefered directory create("testPackage") setwd("./testPackage") document() setwd("..") install("testPackage") main_function() The output is > main_function() Error in eval(expr, envir, enclos) : could not find function "nonlinear_function" > > sessionInfo() R version 3.1.3 (2015-03-09) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 8 x64 (build 9200) locale: [1] LC_COLLATE=English_United States.1252 [2] LC_CTYPE=English_United States.1252 [3] LC_MONETARY=English_United States.1252 [4] LC_NUMERIC=C [5] LC_TIME=English_United States.1252 attached base packages: [1] stats graphics grDevices utils datasets methods [7] base other attached packages: [1] nlme_3.1-120 testPackage_0.0.0.9000 [3] roxygen2_4.1.1 devtools_1.8.0 loaded via a namespace (and not attached): [1] curl_0.8 digest_0.6.8 git2r_0.10.1 [4] grid_3.1.3 lattice_0.20-31 magrittr_1.5 [7] memoise_0.2.1 Rcpp_0.11.6 rversions_1.0.1 [10] stringi_0.4-1 stringr_1.0.0 tools_3.1.3 [13] xml2_0.1.1 Note that if I simply paste main_function and nonlinear_function into the R console, then main_function() runs without errors. Greg [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org 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.