Come altri hanno scritto funzioni, e non le spiegazioni, ve lo riempirò questo.
distribuita con ogni pacchetto è un file di descrizione. Facoltativamente, un maintainer può includere un file CITATION.
La funzione citation(pkgName)
(dove pkgName
è una stringa di caratteri) cercherà prima il file CITATION, quindi il file DESCRIPTION. Se il primo viene trovato, presenterà il contenuto di quel file. Se quest'ultimo, genera automaticamente l'output BibTeX in base ai campi nel file DESCRIPTION. Questa uscita potrebbe richiedere alcune revisioni aggiuntive, quindi fai attenzione prima di utilizzare i contenuti direttamente in una citazione.
Per visualizzare la descrizione del pacchetto, packageDescription(pkgName)
farà il trucco. Ciò restituirà un elenco di elementi, ciascuno basato su un campo dal file DESCRIPTION. Questa è la soluzione migliore se vuoi lavorare a livello di codice con questi contenuti.
Un problema chiave è che l'autore (i) di un pacchetto e il/i manutentore/i del pacchetto potrebbero non essere le stesse persone. Se hai bisogno di assistenza con un pacco, dovresti contattare il/i manutentore/i. Un esempio è nlme
. In primo luogo, un frammento da informazioni di citazione:
> citation("nlme")
To cite package 'nlme' in publications use:
Jose Pinheiro, Douglas Bates, Saikat DebRoy, Deepayan Sarkar and the R Development Core Team (2011). nlme: Linear and
Nonlinear Mixed Effects Models. R package version 3.1-102.
E un frammento da informazioni DESCRIZIONE:
> packageDescription("nlme")
Package: nlme
Title: Linear and Nonlinear Mixed Effects Models
Author: Jose Pinheiro (S version), Douglas Bates (up to 2007), Saikat DebRoy (up to 2002), Deepayan Sarkar (up to 2005), the
R Core team.
Maintainer: R-core <[email protected]>
nota che gli autori elencati partecipato oltre intervalli diversi, ma, se si vuole aiuto oggi, 'e-mail [email protected]
Infine, poiché i manutentori possono creare il proprio file CITATION, le informazioni CITATION non devono essere un sottoinsieme delle informazioni DESCRIZIONE. Un esempio è da citation("base")
, che include, tra le altre cose, il record ISBN, che non è nell'output di packageDescription("base")
.
Update 1. Se vuoi mostrare un po 'di amore per autori o manutentori, qui è un codice ottenere un elenco dei più frequentemente chiamato gli autori o manutentori, in base alla produzione di installed.packages()
. (Se desideri limitarlo ai pacchetti usati da qualche codice, controlla il pacchetto mvbutils
e la funzione foodweb
- potresti diventare pazzo e classificare ulteriormente in base alla frequenza delle chiamate o al tempo trascorso, se si utilizza Rprof
.)
Sfortunatamente, questo codice non divide le stringhe in più nomi, quindi una collaborazione viene considerata come 1 "persona", probabilmente sottovalutando il lavoro dei singoli. Se vuoi un'analisi accurata, dovrai fare un po 'più di lavoro. :)
getMaint <- function(x){
return(packageDescription(x)$Maintainer)
}
getAuth <- function(x){
return(packageDescription(x)$Author)
}
nicePrint <- function(x, N = 10){
tmpTable <- head(sort(table(x), decreasing = TRUE), N)
tmpTable <- as.data.frame(tmpTable)
colnames(tmpTable) = "count"
return(tmpTable)
}
vPkgs <- installed.packages()[,"Package"]
listA <- mapply(getAuth, vPkgs)
listM <- mapply(getMaint, vPkgs)
nicePrint(listA)
nicePrint(listM)
Ecco un esempio da un computer; scuse per i brutti indirizzi di posta elettronica oscurati. Il codice sopra riportato produce gli indirizzi email corretti dal file DESCRIPTION, ma li ho modificati.
Autori:
nicePrint(listA)
count
Diethelm Wuertz and many others, see the SOURCE file 14
Hadley Wickham <xxxxxxxxxxxxxxxxxxx> 7
R Development Core Team and contributors worldwide 7
Henrik Bengtsson <xxxxxxxxxxxxxxxxx> 4
Revolution Analytics 4
Brian Ripley <xxxxxxxxxxxxxxxxxxxxx>. 3
David Scott <xxxxxxxxxxxxxxxxxxxxxx> 3
Luke Tierney <xxxxxxxxxxxxxxxxxxx> 3
R Development Core Team 3
Maintainer:
nicePrint(listM)
count
Rmetrics Core Team <xxxxxxxxxxxxxxxxxxxxxxxxxxx> 19
R Core Team <xxxxxxxxxxxxxxxxxxxx> 13
Brian Ripley <xxxxxxxxxxxxxxxxxxxxx> 9
Achim Zeileis <xxxxxxxxxxxxxxxxxxxxxxxxxxx> 7
Hadley Wickham <xxxxxxxxxxxxxxxxxxx> 7
Torsten Hothorn <xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> 7
David Scott <xxxxxxxxxxxxxxxxxxxxxx> 5
Henrik Bengtsson <xxxxxxxxxxxxxxxxx> 5
Trevor Hastie <xxxxxxxxxxxxxxxxxxx> 5
Luke Tierney <xxxxxxxxxxxxxxxxxxx> 4
L'osservatore attento noterà che questa è la domanda 10.000 ° con il [tag: r] tag. Grazie a R-core e tutti gli autori di pacchetti che hanno reso R il brillante sistema che è. – Andrie
Tecnicamente questa è la seconda 10000a domanda. Il precedente era 10000, quindi una domanda è stata rimandata e ora l'hai riportata di nuovo a 10000. Se continuiamo a ripetere le domande possiamo continuare a festeggiare tutto il giorno! –
Il titolo della domanda suggerisce una risposta chiara (@ spacedman's below; 'packageDescription (" foo ") $ Author'), ma il corpo confonde un po 'l'acqua. Per quanto riguarda R, esiste un'idea chiaramente definita di ciò che l'Autore è e che è nella "DESCRIZIONE". 'citation()' risponde completamente alla Q, tuttavia, perché fa una delle due cose i) se c'è un file 'CITATION' nel pacchetto che mostra che, e se non è presente, genera automaticamente una citazione basata su la 'DESCRIZIONE'. Questo non è stato immediatamente chiaro dalla risposta di Ritchie finché non ho letto "citazione". Una cosa nuova che ho imparato oggi! FTW –