[R: New Features on beginr] Automatically generate a self-contained package

in #utopian-io5 years ago (edited)



Brief Intro and curriculum

If you are an R beginner and you feel it difficult to learn, don’t worry. R can be fun and easy if you use the beginr package, which I developed for R beginners. beginr provides many useful functions, including some functions which help the beginners recall some commands in R, some wrapped plotting functions which can plot complex figures, some functions which can easily read and safely write data files, or process data frames. Furthermore, the source codes of beginr package were written on beginner’ level with the most commonly used functions. Any beginner can simply follow the source code so as to get ideas to write their own codes and even develop their own packages.

A brief introduction can be found in one of my previous post:

New Features

Commit: packr()

Most R beginners think that developing an R package is a mission impossible. It is not true. With the new function packr() , users can create a user-defined useful R packages easily. They can specify in packr()a group of packages (e.g. foo_1, foo_2, foo_x) which they often use and the new package name, say foobar, then a new package called foobar will be generated.

When loading the foobar function, the package group, i.e. foo_1, foo_2, and foo_x are loaded simultaneously. Moreover, a few functions are available in the foobar package , which are well documented in the help. Briefly speaking, these functions can update the package group to the latest versions, check the conflicts with other loaded packages, list the dependencies, and so on. The user can share the foobar package to friends or the community as well.

The core codes of packr() are written in R/packr.R, which calls multiple scripts and templates in inst/skeleton.

GitHub Account



Thank you for your contribution @dapeng !

  1. It looks to me rmd_conflicts function and related ones are same as the one in your rmd contribution. Is it possible to require the common module/functions so that you don't have code duplication over different projects.
  2. The messages used in the packr could be extracted so that you can internationalise those later.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.

Need help? Chat with us on Discord.


Thank you for your review, @justyy! Keep up the good work!

Technically, the idea of the packr() function came from the package 'rmd', which can load and install a group of R markdown packages. As it is quite useful to load user-defined multiple packages, I decided to pack the skeleton of 'rmd' into packr()so that everyone can create rmd-like packages. I would prefer to developing them independently because I will tailor 'rmd' for some specific use, while the current version is universal and sufficient for users to develop their own packages.

Thanks a lot for your kind comments.

Hi @dapeng!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

I have been wanting to learn R, but I have never gotten around to it. Thanks for posting!

It is never too late to begin. Thanks for your msg.

Coin Marketplace

STEEM 0.25
TRX 0.11
JST 0.033
BTC 63036.79
ETH 3067.42
USDT 1.00
SBD 3.82