Skip to content

[R-pkg-devel] Is it possible to reverse engineer a package from the installed library directory ?

4 messages · Paul Hurley, Ben Bolker, Joshua Ulrich +1 more

#
Several years ago I assembled some of my own most used code into a package,
and had that installed on my machine.  Since then I have lost the source
files, but still have the package installed in an old v2.x R installation.

I now need to use the package in my current R install, which is v3.1, and
won't let me just copy the directory across, as it complains it was build
pre v3.  Is it possible to reverse engineer a package back to R source
files so I can then rebuild it in a new package ?

Thanks

Paul.

--http://www.paulhurley.co.uk
#
You could take your old install and do this:

   library("your_package")
   funs <- ls(pos="package:your_package")
   dump(funs,"your_package.R")

   that wouldn't recreate documentation, NAMESPACE files, etc., but it 
would be a start.
On 16-03-23 04:43 PM, Paul Hurley wrote:
#
On Wed, Mar 23, 2016 at 9:25 PM, Ben Bolker <bbolker at gmail.com> wrote:
You might be able to recreate the Rd files using the answers to this
StackOverflow question: http://stackoverflow.com/q/7493843/271616

Using the example in my answer as a starting point:
sink(file="survey.Rd")
utils:::.getHelpFile(as.character(help(survey,package="MASS")))
sink()

It might still need some formatting clean-up, but hopefully that gets
you 80-90% of the solution.

  
    
#
Further to Joshua's comment, 
package "Rdpack" has a function reprompt(), which when called with one argument 
creates an Rd documentation file. It can do this for methods (S3/S4), classes and package-package if required,
e.g.

library(Rdpack)
reprompt(lm)

creates a lm.Rd in the current working directory.

reprompt() actually checks if the current documentation is up to date and updates the usage statement or adds the  items for additional arguments as needed. I use it during development.

Georgi

-----Original Message-----
From: R-package-devel [mailto:r-package-devel-bounces at r-project.org] On Behalf Of Joshua Ulrich
Sent: 24 March 2016 05:53
To: Ben Bolker
Cc: r-package-devel at r-project.org
Subject: Re: [R-pkg-devel] Is it possible to reverse engineer a package from the installed library directory ?
On Wed, Mar 23, 2016 at 9:25 PM, Ben Bolker <bbolker at gmail.com> wrote:
You might be able to recreate the Rd files using the answers to this StackOverflow question: http://stackoverflow.com/q/7493843/271616

Using the example in my answer as a starting point:
sink(file="survey.Rd")
utils:::.getHelpFile(as.character(help(survey,package="MASS")))
sink()

It might still need some formatting clean-up, but hopefully that gets you 80-90% of the solution.
--
Joshua Ulrich  |  about.me/joshuaulrich
FOSS Trading  |  www.fosstrading.com
R/Finance 2016 | www.rinfinance.com

______________________________________________
R-package-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel