2012-10-26 13 views
36

Próbuję zbudować pakiet R więc czytanie podręcznika CRAN. Mogłem się dowiedzieć, że użycie importu do załadowania funkcji w twojej przestrzeni nazw byłoby najlepszym wyborem do użycia w pliku opisu. Po dodaniu do pliku opisu dodałem go również do pliku przestrzeni nazw. Dodałem importFrom do pliku przestrzeni nazw z wymaganymi funkcjami.nazw nie Zależności wymagane

Teraz gdy uruchamiam czek R CMD w moim pakiecie, pojawia się błąd jak

Namespace dependencies not required : 'ggplot2'

Dalsze informacje: Nawet jeśli dodać pakiet do Depends w pliku opisu, nie są one coraz załadowany .

Proszę o pomoc z tym.

Proszę znaleźć plik opis poniżej

Package: bigpackage 
Type: Package 
Title: Some title 
Version: 1.0 
Date: 2012-10-25 
Author: Mayank Bansal 
Maintainer: somename 
Imports : R(>= 2.15.1), SweaveListingUtils(>=0.5.5),xtable(>=1.7-0), 
     brew(>=1.0-6), knitr(>=0.8), RHive(>= 0.0-6), ggplot2(>=0.9.2) 
     , brew, knitr 
SystemRequirements : LaTeX(texi2dvi) must be present in the system to 
     create PDF reports 
Description: Some Description 
License: file LICENSE 
LazyLoad: yes 
ByteCompile: true 
OS_type : unix 
+0

Czy importowania czegokolwiek od 'ggplot2' bezpośrednio w pliku przestrzeni nazw? –

+0

Tak, używam go. –

+0

Jeśli nadal masz problemy, pokaż nam swój plik DESCRIPTION. – GSee

Odpowiedz

42

Jeśli używasz import lub importFrom w pliku przestrzeni nazw, trzeba mieć wpis dla tego pakietu w sekcji przywozu pliku opis (o ile nie jest to powód że trzeba użyć, zależy w tym przypadku pakiet powinien posiadać wpis zależy, a nie importu)

Oto odnośny fragment Writing R Extensions

The ‘Imports’ field lists packages whose namespaces are imported from (as specified in the NAMESPACE file) but which do not need to be attached. Namespaces accessed by the ‘::’ and ‘:::’ operators must be listed here, or in ‘Suggests’ or ‘Enhances’ (see below). Ideally this field will include all the standard packages that are used, and it is important to include S4-using packages (as their class definitions can change and the DESCRIPTION file is used to decide which packages to re-install when this happens). Packages declared in the ‘Depends’ field should not also be in the ‘Imports’ field.


Zrobiłem paczkę z jedną funkcją f. Zrobiłem plik NAMESPACE z tą samą linią importFrom, którą mówisz, że masz w swojej.

plik NAMESPACE

export("f") 
importFrom("ggplot2","ggplot","geom_histogram") 

W tym momencie, jeśli biegnę R CMD check, jak oczekiwano, pojawia się błąd:

Namespace dependency not required: ‘ggplot2’

Ale jeśli dodać Imports: ggplot2 opisowi taki, że mój plik DESCRIPTION wygląda następująco, bez problemów przechodzi przez R CMD check.

plik OPIS

Package: anRpackage 
Type: Package 
Title: What the package does (short line) 
Version: 1.0 
Date: 2012-11-07 
Author: Me 
Maintainer: Who to complain to <[email protected]> 
Description: More about what it does (maybe more than one line) 
License: GPL 
Imports: ggplot2 
+0

Czy to nie powiedzie czek R CMD jeśli nie zawierają sekcję Imports w opisie chociaż? – Dason

+0

@Dason nr Patrz [OPIS] (https://r-forge.r-project.org/scm/viewvc.php/pkg/xts/DESCRIPTION?view=markup&root=xts) i [NAMESPACE] (https : //r-forge.r-project.org/scm/viewvc.php/pkg/xts/NAMESPACE? view = markup & root = xts) pakietu xts na przykład ... 'Zależy: ggplot2' może wymagać plik DESCRIPTION dla OP choć – GSee

+0

Powinieneś go mieć w polu importu, a nie w polu zależnym. – hadley