Ошибка в initFields (масштабы = масштабы): не удалось найти функцию initRefFields

У меня есть функция построения графика ggplot2 как часть моего кода. Функция отлично работает, когда файл получен как код R, однако, когда я включаю эту функцию в пакет R (и, конечно, я включаю ggplot2 и шкалы как в DESCRIPTION, так и в файлы NAMESPACE пакета), я получаю следующее ошибка:

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

Соответствующий вызов весов в объекте ggplot2 следующий:

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

Я запускаю последнюю версию R (3.2.0) и последнюю версию ggplot2 (1.0.1), установленную из исходного кода.

Возможное решение/объяснение будет высоко оценено!

РЕДАКТИРОВАТЬ: вывод sessionInfo() следующий:

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

.libPaths() также довольно часто встречается в моей установке:

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

Возможно, мне следует также добавить, что я вызываю функцию, для которой требуется пакет scales, из R-скрипта командной строки.

(Это не дубликат ggplot2 Error in initFields, поскольку я перепробовал все их рекомендации (кроме конечно, возвращаясь к R 2.14), и ни один из них не работал).


person Costas Bouyioukos    schedule 15.05.2015    source источник
comment
Где ваш вывод sessionInfo()? Наверное надо псот .libPaths() так же. И вы должны включить в эти файлы то, что вы на самом деле делаете с этими пакетами.   -  person IRTFM    schedule 15.05.2015
comment
Спасибо за ваш комментарий. Я думал, что они оба довольно распространены, поэтому я не включил их в исходный вопрос. Я редактирую и добавляю эту информацию тоже сейчас.   -  person Costas Bouyioukos    schedule 16.05.2015
comment
По второй части вашего комментария. У меня есть функция, которая принимает фрейм данных в качестве входных данных и генерирует из него ggplot (довольно сложно, поэтому я оборачиваю его в функцию). Мне нужно, чтобы пакет Scales имел свободные границы осей. Функция вызывается R-скриптом командной строки (с Rscript в строке shebang). Когда я использую код функций R в скрипте, все работает нормально. Когда я создаю пакет R с моим кодом функций R (после создания необходимых файлов и проверки их R CMD) и импортирую этот пакет R (называемый Greater_1.0) в свой сценарий, я получаю вышеупомянутую ошибку.   -  person Costas Bouyioukos    schedule 17.05.2015


Ответы (1)


Я думаю, что нашел решение/обходной путь.

Как я заметил из sessionInfo(), пакет methods не был прикреплен, а загружен в пространство имен. Поэтому после присоединения methods (а также grid, который был необходим для последующей функции) мой скрипт работает нормально, загружая функции из пакета.

Мой рабочий sessionInfo() теперь выглядит так:

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

Большое спасибо за вклад, однако я был бы признателен за объяснение, во-первых, почему необходимо явно прикреплять эти два пакета (methods и grid), когда функции загружаются как пакет, и это не требуется, когда функция находится в источнике по source().

person Costas Bouyioukos    schedule 17.05.2015