An R package to create files

[This article was first published on r-bloggers – STATWORX, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

A while back, I started to create an R package that would help me and my collegues at STATWORX with our daily work. After writing the DESCRIPTION file, I did not want to do this ever again. I found the desc package which let's you parse, manipulate and reformat this file via some functions and ergo a script. If you want more info on that, check out their github. However, I was too lazy still, because I had to manually write the NEWS file.

I longed for the functionality of editing the NEWS file in the same script I built for the DESCRIPTION file. Since I could not find anything – and already was in a mood for programming – I wrote one my self. In this blog post, I will briefly explain what the package does.

Usage of newsmd

The main part of the package is the news object, which is an R6 class object and contains the text for the file. You can add versions, subtitles and bullet points to it via the object's methods.

Initialise a new object

To initialise a new object you can use two different ways:

# install.packages("devtools")

my_news <- news$new()
my_news <- newsmd()

The default text contains markdown code and looks like this:

## version


### setup

- added creation

Adding a the next version

With add_version you can update the version number.


Adding a new subtitle

With add_subtitle you can add a new subtile, where the follwoing bullet points will be under.


Adding more bullets

With add_bullet you can add more bullet points to the latest version and latest subtitle.

my_news$add_bullet(c("this is point 1", "this is point 2"))

Getting the whole text

After these fews changes, let's see how the file looks. The get_text method will return each single line of the file. Alternativly you can just use print(my_news).


 [1] "## version 0.0.1"        
 [2] ""                        
 [3] "---"                     
 [4] ""                        
 [5] ""                        
 [6] "### Bugfixes"            
 [7] ""                        
 [8] "- this is point 1"       
 [9] "- this is point 2"       
[10] ""                        
[11] ""                        
[12] "## version"   
[13] ""                        
[14] "---"                     
[15] ""                        
[16] "### setup"               
[17] ""                        
[18] "- added creation"
[19] "" 

Writing the file

At last, with write you can save all your changes into the file.


Combination with the desc package

The goal of this package is to update the file in addition to the DESCRIPTION file. To optimize the workflow I suggest the desc package. For example instead of manually defining the version number, you can use desc_bump_version() and get_version() of the desc package:


my_news$add_bullet("added automated creation for DESCRIPTION and")

The full example script I used for my other package, can be found here.


I hope this little package will be of help to some of you. If you find some bugs or have ideas that would improve the usage and functionality, I would be pleased if you let me know on my Github.

Über den Autor

Jakob Gepp

Jakob Gepp

Jakob ist im Statistik Team und interessiert sich im Moment stark für Hadoop und Big Data. In seiner Freizeit bastelt er gerne an alten Elektrogeräten und spielt Hockey.

Der Beitrag An R package to create files erschien zuerst auf STATWORX.

To leave a comment for the author, please follow the link and comment on their blog: r-bloggers – STATWORX. offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)