[Rd] Best practices in developing package: From a single file
Duncan Murdoch
murdoch.duncan at gmail.com
Wed Jan 31 02:09:52 CET 2018
On 30/01/2018 4:12 PM, Dirk Eddelbuettel wrote:
>
> Mehmet,
>
> That is a loaded topic, not unlikely other topics preoccupying us these days.
>
> There is package.skeleton() in base R as you already mentioned. It drove me
> bonkers that it creates packages which then fail R CMD check, so I wrote a
> wrapper package (pkgKitten) with another helper function (kitten()) which
> calls the base R helper and then cleans up it---but otherwise remains
> faithful to it.
Failing R CMD check isn't a big deal: you want to be reminded to edit
those incomplete help files. But I think I recall that you couldn't
even build the package that package.skeleton() created, and that indeed
would be irritating, especially if you had a lot of functions so you had
a lot of cleanup to do. I don't know if that's still true because I
generally use RStudio to create the initial package structure rather
than calling package.skeleton myself.
Duncan Murdoch
>
> These days pkgKitten defaults to creating per-package top-level help page
> that just references content from DESCRIPTION via a set of newer Rd macros as
> I find that helps keeping them aligned. The most recent example of mine is
> https://github.com/eddelbuettel/prrd/blob/master/man/prrd-package.Rd
> I use either this function or the RStudio template helper all the time.
>
> And similarly, other people written similar helpers. You may get other pointers.
>
> And every couple of months someone writes a new tutorial about how to write a
> first package. Then social media goes gaga and we get half a dozen blog posts
> where someone celebrates finding said tutorial, reading it and following
> through with a new package.
>
> And many of us taught workshops on creating packages. There is a lot of
> material out here, though lots of this material seems to be entirely ignorant
> of what came before it.
>
> And there has been lots, including Fritz's tutorial from a decade ago:
>
> https://epub.ub.uni-muenchen.de/6175/ as well as on CRAN as
> https://cran.r-project.org/doc/contrib/Leisch-CreatingPackages.pdf
>
> So I'd recommend you just experiment and set up your own helpers. After all
> the rule still holds: Anything you do more than three times should be a
> function, and every function should be in a package. So customize _your_
> function to create your package.
>
> Dirk
>
More information about the R-devel
mailing list