2013-07-15 10 views
12

Sto provando a creare un pacchetto con devtools. Voglio impostare alcune opzioni in modo che il file DESCRIPTION sia compilato automaticamente. Non riesco a farlo bene.devtools DESCRIPTION file

Questo è un problema che può essere facilmente risolto manualmente, credo, ma voglio che funzioni in codice. Preoccupato, l'errore mi riguarderà più tardi. Qualche suggerimento sulla sintassi appropriata? Ho le mie funzioni in una cartella chiamata "R". Ho impostato la mia directory di lavoro alla cartella principale per R. Allora:

library(devtools) 

install_github("devtools") 

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

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

load_all() 

Questo Risulterà:

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. 

Sono consapevole del fatto che in qualche modo gli Autori @ campo R/è in qualche modo sostituendo il campo Maintainer, ma chiedendosi come ottenerlo per interrompere gli errori di lancio e cosa significano.

Grazie in anticipo!

risposta

13

Purtroppo è necessario:

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

perché il contenuto di [email protected] deve essere un'espressione R valida.

oppure utilizzando la funzione person dal pacchetto utils:

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

Con l'aggiunta di un apice singolo per chiudere l'espressione R, questo funziona perfettamente. Grazie! – forlooper

+1

@forlooper - Lì, ho aggiunto la citazione singola mancante. –

+0

@ JoshO'Brien - Grazie, non ti rendi conto che potresti modificare le altre risposte – forlooper