Error in initFields(scales = scales) : could not find function "initRefFields"
Asked Answered
A

1

3

I have a ggplot2 plotting function as part of my code. The function works fine when the file is sourced as R code, however when I include this function in an R package (and of course I include ggplot2 and scales both in the DESCRIPTION and in the NAMESPACE files of the package) I am getting the following error:

Error in initFields(scales = scales) : 
  could not find function "initRefFields"

The respective call of scales in the ggplot2 object is the following:

+ facet_wrap(~PV_Type, ncol = 1, scales = "free") +

I run the latest R (3.2.0) and the latest ggplot2 (1.0.1) installed from source.

A possible solution/explanation will be highly appreciated!

EDIT: The output of sessionInfo() is the following:

R version 3.2.0 (2015-04-16)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.10.3 (Yosemite)

locale:
[1] C/UTF-8/C/C/C/C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  base

other attached packages:
[1] argparse_1.0.1 proto_0.3-10   greater_1.0

loaded via a namespace (and not attached):
 [1] Rcpp_0.11.6        DEoptimR_1.0-2     RColorBrewer_1.1-2 plyr_1.8.2
 [5] methods_3.2.0      class_7.3-12       prabclus_2.2-6     tools_3.2.0
 [9] digest_0.6.8       mclust_5.0.1       gtable_0.1.2       lattice_0.20-31
[13] mvtnorm_1.0-2      findpython_1.0.1   gridExtra_0.9.1    trimcluster_0.1-2
[17] stringr_1.0.0      cluster_2.0.1      RGraphics_2.0-12   fpc_2.1-9
[21] stats4_3.2.0       diptest_0.75-6     grid_3.2.0         nnet_7.3-9 
[25] getopt_1.20.0      robustbase_0.92-3  flexmix_2.3-13     pander_0.5.1
[29] ggplot2_1.0.1      reshape2_1.4.1     kernlab_0.9-20     magrittr_1.5
[33] scales_0.2.4       modeltools_0.2-21  MASS_7.3-40        colorspace_1.2-6
[37] stringi_0.4-1      munsell_0.4.2      rjson_0.2.15

The .libPaths() is also rather common for my installation:

>.libPaths()
[1] "/Library/Frameworks/R.framework/Versions/3.2/Resources/library"

Perhaps I should also add that I call the function which requires the scales package from a command line R script.

(This is not a duplicate of ggplot2 Error in initFields as I tried all their recommendations (apart from reverting back to R 2.14 of course) and none worked).

Alysa answered 15/5, 2015 at 18:49 Comment(3)
Where's your sessionInfo() output? Probably should psot .libPaths() as well. And you should include what you actually do with those packages in those files.Patriarchate
Thanks for your comment I thought that they are both fairly common that's why I haven't included them in the original question. I edit and append this information too now.Alysa
On the second part of your comment. I have a function which takes a data frame as input and generates a ggplot out of it (rather complicated that's why I wrap it in a function). I need the scales package to have "free" axis boundaries. The function is called by a command line R script (with Rscript in the shebang line). When I source my R functions code in the script everything works fine. When I generate an R package with my R functions code (after producing the required files and R CMD check them) and I import this R package (called greater_1.0) in my script I get the above mentioned error.Alysa
A
3

I think I have found a solution/workaround.

As I noticed from sessionInfo() the methods package was not attached but rather loaded in the namespace. Therefore after attaching methods (as well as grid which was needed for a consequent function) my script work fine by oading the functions from the package.

My working sessionInfo() looks like this now:

R version 3.2.0 (2015-04-16)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.10.3 (Yosemite)

locale:
[1] C/UTF-8/C/C/C/C

attached base packages:
[1] grid      methods   stats     graphics  grDevices utils     datasets
[8] base

other attached packages:
[1] argparse_1.0.1 proto_0.3-10   greater_1.0

loaded via a namespace (and not attached):
 [1] Rcpp_0.11.6        DEoptimR_1.0-2     RColorBrewer_1.1-2 plyr_1.8.2
 [5] class_7.3-12       prabclus_2.2-6     tools_3.2.0        digest_0.6.8
 [9] mclust_5.0.1       gtable_0.1.2       lattice_0.20-31    mvtnorm_1.0-2
[13] findpython_1.0.1   gridExtra_0.9.1    trimcluster_0.1-2  stringr_1.0.0
[17] cluster_2.0.1      RGraphics_2.0-12   fpc_2.1-9          stats4_3.2.0
[21] diptest_0.75-6     nnet_7.3-9         getopt_1.20.0      robustbase_0.92-3
[25] flexmix_2.3-13     pander_0.5.1       ggplot2_1.0.1      reshape2_1.4.1
[29] kernlab_0.9-20     magrittr_1.5       scales_0.2.4       modeltools_0.2-21
[33] MASS_7.3-40        colorspace_1.2-6   stringi_0.4-1      munsell_0.4.2
[37] rjson_0.2.15

Thanks very much for the contribution, however I would appreciate an explanation on firstly why there is the need to explicitly attach these two packages (methods and grid) when the functions are loaded as a package, and it is not required when the function are sourced by source().

Alysa answered 17/5, 2015 at 22:10 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.