2015-05-15 2 views
3

У меня есть функция построения ggplot2 как часть моего кода. Функция отлично работает, когда файл создается как R-код, однако, когда я включаю эту функцию в R-пакет (и, конечно, я включаю ggplot2 и масштабирует как в DESCRIPTION, так и в файлах NAMESPACE пакета). Я получаю следующее сообщение об ошибке:Ошибка в initFields (шкалы = шкалы): не удалось найти функцию «initRefFields»

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) установлен из источника.

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

EDIT: Выход 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, конечно), и никто не работал).

+2

Где ваш результат sessionInfo()? Вероятно, должен psot '.libPaths()' также. И вы должны включить то, что вы на самом деле делаете с этими пакетами в этих файлах. –

+0

Спасибо за ваш комментарий Я думал, что они оба довольно распространены, поэтому я не включил их в исходный вопрос. Теперь я редактирую и добавляю эту информацию. –

+0

На второй части вашего комментария. У меня есть функция, которая берет фрейм данных в качестве входных данных и генерирует ggplot из него (довольно сложно, поэтому я завершаю его в функцию). Мне нужен пакет весов для «свободных» границ оси. Функция вызывается сценарием командной строки R (с Rscript в строке shebang). Когда я использую код функций R в скрипте, все работает нормально. Когда я создаю R-пакет с моим кодом функций R (после создания необходимых файлов и R CMD проверьте их), и я импортирую этот R-пакет (называемый большим_1.0) в свой скрипт, я получаю вышеупомянутую ошибку. –

ответ

3

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

Как я заметил из 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().

Смежные вопросы