2013-07-15 17 views
12

Próbuję utworzyć pakiet z devtools. Chcę ustawić kilka opcji, aby plik DESCRIPTION był automatycznie wypełniany. Nie mogę tego naprawić.devtools OPIS pliku

Jest to problem, który można łatwo naprawić ręcznie, myślę, ale chcę, aby działało to w kodzie. Obawiam się, że błąd wpłynie na mnie później. Wszelkie sugestie dotyczące właściwej składni? Mam swoje funkcje w folderze o nazwie "R". Mogę ustawić katalog roboczy do folderu nadrzędnego dla R. Następnie:

library(devtools) 

install_github("devtools") 

options(devtools.desc.author="First Last <[email protected]> [aut, cre]") 

options(devtools.desc.license="GPL-3") 

load_all() 

ten wyprowadza to:

No DESCRIPTION found. Creating default: 

Package: mypackage 
Title: 
Description: 
Version: 0.1 
[email protected]: First Last <[email protected]> [aut, cre] 
Depends: R (>= 3.0.1) 
License: GPL-3 
LazyData: true 
Loading mypackage 
Invalid DESCRIPTION: 
Malformed [email protected] field: 
<text>:1:7: unexpected symbol 
1: First Last 
     ^

Required fields missing: 
    Author Maintainer 

See the information on DESCRIPTION files in section 'Creating R packages' of the 'Writing R Extensions' manual. 

Zdaję sobie sprawę, że w jakiś sposób Autorzy @ dziedzinie R może/jest w jakiś sposób zastępując pole Maintainer, ale zastanawiając się, jak to zatrzymać, aby rzucić błędy i co one oznaczają.

Z góry dziękuję!

Odpowiedz

13

Niestety trzeba:

options(devtools.desc.author="'First Last <[email protected]> [aut, cre]'") 

ponieważ zawartość [email protected] musi być poprawnym wyrażeniem R.

lub za pomocą funkcji person z pakietu utils:

authors_at_r <- paste0(
    "'", 
    person(
    "First", 
    "Last", 
    email = "[email protected]", 
    role = c("aut", "cre")), 
    "'" 
) 
options(devtools.desc.author=authors) 
+1

Z dodatkiem jednym cytatem zamknięcia ekspresję R, to działa doskonale. Dzięki! – forlooper

+1

@forlooper - Tam dodałem brakujący pojedynczy cytat. –

+0

@ JoshO'Brien - Dziękujemy, nie zdawałeś sobie sprawy, że możesz edytować inne odpowiedzi – forlooper