On 12/11/2009 08:41 AM, Achim Zeileis wrote:

On Fri, 11 Dec 2009, Rainer M Krug wrote:

Hi

is there an easy and fast way, to generate a BibTeX file of all
installed /
loaded packages and R?

I know about toBibtex(citation()) to extract the BibTeX for a single
package, but how can I generate a file containg citations for all
installed
/ loaded packages?

I don't think that there is a way other than calling citation() for each
of the installed.packages(). You could do something like this:

## try to get BibTeX for each of the installed packages
b <- lapply(installed.packages()[,1], function(x)
try(toBibtex(citation(x))))
## omit failed citation calls
b <- b[-which(sapply(b, class) == "try-error")]

I would use logical indexing instead of "which" because if none actually fail, you end up indexing by integer(0) so b is empty.

b <- b[!(sapply(b, class) == "try-error")]

## unify to list of Bibtex
b <- lapply(b, function(x) if(inherits(x, "Bibtex")) list(x) else x)
## list of unique entries
b <- unique(do.call("c", b))
## write everything to a single .bib file
writeLines(do.call("c", lapply(b, as.character)), "Rpackages.bib")

hth,
Z

If you then want to do the reversed operation, read a bibtex file into a "citationList" object, you can use the unreleased(*) package bibtex.

> install.packages("bibtex", repos="http://R-Forge.R-project.org";)
> require( bibtex )
Loading required package: bibtex
> bib <- read.bib( "Rpackages.bib" )
There were 50 or more warnings (use warnings() to see the first 50)

(*) because I have been lazy

The warnings are all about the lack of keys in the entries cooked by toBibtex. no big deal.

Romain

Cheers,

Rainer

--
NEW GERMAN FAX NUMBER!!!

Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology,
UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
Stellenbosch
South Africa

Cell: +27 - (0)83 9479 042
Fax: +27 - (0)86 516 2782
Fax: +49 - (0)321 2125 2244
email: rai...@krugs.de

Skype: RMkrug
Google: r.m.k...@gmail.com

[[alternative HTML version deleted]]



--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://tr.im/Gq7i : ohloh
|- http://tr.im/FtUu : new package : highlight
`- http://tr.im/EAD5 : LondonR slides

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to