<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Packages on R Views</title>
    <link>https://rviews.rstudio.com/tags/packages/</link>
    <description>Recent content in Packages on R Views</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 22 Apr 2019 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://rviews.rstudio.com/tags/packages/" rel="self" type="application/rss+xml" />
    
    
    
    
    <item>
      <title>Reproducible Environments</title>
      <link>https://rviews.rstudio.com/2019/04/22/reproducible-environments/</link>
      <pubDate>Mon, 22 Apr 2019 00:00:00 +0000</pubDate>
      
      <guid>https://rviews.rstudio.com/2019/04/22/reproducible-environments/</guid>
      <description>
        
&lt;script src=&#34;/rmarkdown-libs/htmlwidgets/htmlwidgets.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;/rmarkdown-libs/plotly-binding/plotly.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;/rmarkdown-libs/typedarray/typedarray.min.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;/rmarkdown-libs/jquery/jquery.min.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;/rmarkdown-libs/crosstalk/css/crosstalk.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;script src=&#34;/rmarkdown-libs/crosstalk/js/crosstalk.min.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;/rmarkdown-libs/plotly-htmlwidgets-css/plotly-htmlwidgets.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;script src=&#34;/rmarkdown-libs/plotly-main/plotly-latest.min.js&#34;&gt;&lt;/script&gt;


&lt;p&gt;Great data science work should be reproducible. The ability to repeat
experiments is part of the foundation for all science, and reproducible work is
also critical for business applications. Team collaboration, project validation,
and sustainable products presuppose the ability to reproduce work over time.&lt;/p&gt;
&lt;p&gt;In my opinion, mastering just a handful of important tools will make
reproducible work in R much easier for data scientists. R users should be
familiar with version control, RStudio projects, and literate programming
through R Markdown. Once these tools are mastered, the major remaining challenge
is creating a reproducible environment.&lt;/p&gt;
&lt;p&gt;An environment consists of all the dependencies required to enable your code to
run correctly. This includes R itself, R packages, and system dependencies. As
with many programming languages, it can be challenging to manage reproducible R
environments. Common issues include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Code that used to run no longer runs, even though the code has not changed.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Being afraid to upgrade or install a new package, because it might break your code or someone else’s.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Typing &lt;code&gt;install.packages&lt;/code&gt; in your environment doesn’t do anything, or doesn’t do the &lt;em&gt;right&lt;/em&gt; thing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These challenges can be addressed through a careful combination of tools and
strategies. This post describes two use cases for reproducible environments:&lt;/p&gt;
&lt;ol style=&#34;list-style-type: decimal&#34;&gt;
&lt;li&gt;Safely upgrading packages&lt;/li&gt;
&lt;li&gt;Collaborating on a team&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The sections below each cover a strategy to address the use case, and the necessary
tools to implement each strategy. Additional use cases, strategies, and tools are
presented at &lt;a href=&#34;https://environments.rstudio.com&#34; class=&#34;uri&#34;&gt;https://environments.rstudio.com&lt;/a&gt;. This website is a work in
progress, but we look forward to your feedback.&lt;/p&gt;
&lt;div id=&#34;safely-upgrading-packages&#34; class=&#34;section level2&#34;&gt;
&lt;h2&gt;Safely Upgrading Packages&lt;/h2&gt;
&lt;p&gt;Upgrading packages can be a risky affair. It is not difficult to find serious R
users who have been in a situation where upgrading a package had unintended
consequences. For example, the upgrade may have broken parts of their current code, or upgrading a
package for one project accidentally broke the code in another project. A
strategy for safely upgrading packages consists of three steps:&lt;/p&gt;
&lt;ol style=&#34;list-style-type: decimal&#34;&gt;
&lt;li&gt;Isolate a project&lt;/li&gt;
&lt;li&gt;Record the current dependencies&lt;/li&gt;
&lt;li&gt;Upgrade packages&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first step in this strategy ensures one project’s packages and upgrades
won’t interfere with any other projects. Isolating projects is accomplished by
creating per-project libraries. A tool that makes this easy is the new &lt;a href=&#34;https://github.com/rstudio/renv&#34;&gt;&lt;code&gt;renv&lt;/code&gt;
package&lt;/a&gt;. Inside of your R project, simply use:&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# inside the project directory
renv::init()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The second step is to record the current dependencies. This step is critical
because it creates a safety net. If the package upgrade goes poorly, you’ll be
able to revert the changes and return to the record of the working state. Again,
the &lt;code&gt;renv&lt;/code&gt; package makes this process easy.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# record the current dependencies in a file called renv.lock
renv::snapshot()

# commit the lockfile alongside your code in version control
# and use this function to view the history of your lockfile
renv::history()

# if an upgrade goes astray, revert the lockfile
renv::revert(commit = &amp;quot;abc123&amp;quot;)

# and restore the previous environment
renv::restore()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With an isolated project and a safety net in place, you can now proceed to
upgrade or add new packages, while remaining certain the current functional
environment is still reproducible. The &lt;a href=&#34;https://github.com/r-lib/pak&#34;&gt;&lt;code&gt;pak&lt;/code&gt;
package&lt;/a&gt; can be used to install and upgrade
packages in an interactive environment:&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# upgrade packages quickly and safely
pak::pkg_install(&amp;quot;ggplot2&amp;quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The safety net provided by the &lt;code&gt;renv&lt;/code&gt; package relies on access to older versions
of R packages. For public packages, CRAN provides these older versions in the
&lt;a href=&#34;https://cran.rstudio.com/src/contrib/Archive&#34;&gt;CRAN archive&lt;/a&gt;. Organizations can
use tools like &lt;a href=&#34;https://rstudio.com/products/package-manager&#34;&gt;RStudio Package
Manager&lt;/a&gt; to make multiple versions
of private packages available. The &lt;a href=&#34;https://environments.rstudio.com/snapshot&#34;&gt;“snapshot and
restore”&lt;/a&gt; approach can also be used
to &lt;a href=&#34;https://environments.rstudio.com/deploy&#34;&gt;promote content to production&lt;/a&gt;. In
fact, this approach is exactly how &lt;a href=&#34;https://rstudio.com/products/connect&#34;&gt;RStudio
Connect&lt;/a&gt; and
&lt;a href=&#34;https://shinyapps.io&#34;&gt;shinyapps.io&lt;/a&gt; deploy thousands of R applications to
production each day!&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;team-collaboration&#34; class=&#34;section level2&#34;&gt;
&lt;h2&gt;Team Collaboration&lt;/h2&gt;
&lt;p&gt;A common challenge on teams is sharing and running code. One strategy that
administrators and R users can adopt to facilitate collaboration is
shared baselines. The basics of the strategy are simple:&lt;/p&gt;
&lt;ol style=&#34;list-style-type: decimal&#34;&gt;
&lt;li&gt;Administrators setup a common environment for R users by installing RStudio Server.&lt;/li&gt;
&lt;li&gt;On the server, administrators &lt;a href=&#34;https://support.rstudio.com/hc/en-us/articles/215488098&#34;&gt;install multiple versions of R&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Each version of R is tied to a frozen repository using a Rprofile.site file.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;By using a frozen repository, either administrators or users can install
packages while still being sure that everyone will get the same set of packages.
A frozen repository also ensures that adding new packages won’t upgrade other
shared packages as a side-effect. New packages and upgrades are offered to users
over time through the addition of new versions of R.&lt;/p&gt;
&lt;p&gt;Frozen repositories can be created by manually cloning CRAN, accessing a service
like MRAN, or utilizing a supported product like &lt;a href=&#34;https://rstudio.com/products/package-manager&#34;&gt;RStudio Package
Manager&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/post/2019-04-15-repro-envs_files/figure-html/unnamed-chunk-4-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;adaptable-strategies&#34; class=&#34;section level2&#34;&gt;
&lt;h2&gt;Adaptable Strategies&lt;/h2&gt;
&lt;p&gt;The prior sections presented specific strategies for creating reproducible
environments in two common cases. The same strategy may not be appropriate for
every organization, R user, or situation. If you’re a student reporting an
error to your professor, capturing your &lt;code&gt;sessionInfo()&lt;/code&gt; may be all you need. In
contrast, a statistician working on a clinical trial will need a robust
framework for recreating their environment. &lt;strong&gt;Reproducibility is not binary!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/post/2019-04-15-repro-envs_files/figure-html/unnamed-chunk-5-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;To help pick between strategies, we’ve developed a &lt;a href=&#34;https://environments.rstudio.com/reproduce&#34;&gt;strategy
map&lt;/a&gt;. By answering two questions,
you can quickly identify where your team falls on this map and identify the
nearest successful strategy. The two questions are represented on the x and
y-axis of the map:&lt;/p&gt;
&lt;ol style=&#34;list-style-type: decimal&#34;&gt;
&lt;li&gt;Do I have any restrictions on what packages can be used?&lt;/li&gt;
&lt;li&gt;Who is responsible for managing installed packages?&lt;/li&gt;
&lt;/ol&gt;
&lt;div id=&#34;htmlwidget-1&#34; style=&#34;width:672px;height:480px;&#34; class=&#34;plotly html-widget&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;application/json&#34; data-for=&#34;htmlwidget-1&#34;&gt;{&#34;x&#34;:{&#34;data&#34;:[{&#34;x&#34;:[-0.05,1.05],&#34;y&#34;:[0.15,1.25],&#34;text&#34;:&#34;&#34;,&#34;type&#34;:&#34;scatter&#34;,&#34;mode&#34;:&#34;lines&#34;,&#34;line&#34;:{&#34;width&#34;:1.88976377952756,&#34;color&#34;:&#34;rgba(0,0,0,0.2)&#34;,&#34;dash&#34;:&#34;solid&#34;},&#34;hoveron&#34;:&#34;points&#34;,&#34;showlegend&#34;:false,&#34;xaxis&#34;:&#34;x&#34;,&#34;yaxis&#34;:&#34;y&#34;,&#34;hoverinfo&#34;:&#34;skip&#34;,&#34;frame&#34;:null},{&#34;x&#34;:[0,0,0.8,0],&#34;y&#34;:[0.2,1,1,0.2],&#34;text&#34;:&#34;NA&#34;,&#34;type&#34;:&#34;scatter&#34;,&#34;mode&#34;:&#34;lines&#34;,&#34;line&#34;:{&#34;width&#34;:1.88976377952756,&#34;color&#34;:&#34;transparent&#34;,&#34;dash&#34;:&#34;solid&#34;},&#34;fill&#34;:&#34;toself&#34;,&#34;fillcolor&#34;:&#34;rgba(255,0,0,0.1)&#34;,&#34;hoveron&#34;:&#34;fills&#34;,&#34;showlegend&#34;:false,&#34;xaxis&#34;:&#34;x&#34;,&#34;yaxis&#34;:&#34;y&#34;,&#34;hoverinfo&#34;:&#34;skip&#34;,&#34;frame&#34;:null},{&#34;x&#34;:[0,1,0.8,0,0],&#34;y&#34;:[null,0.8,1,0.2,null],&#34;text&#34;:&#34;NA&#34;,&#34;type&#34;:&#34;scatter&#34;,&#34;mode&#34;:&#34;lines&#34;,&#34;line&#34;:{&#34;width&#34;:1.88976377952756,&#34;color&#34;:&#34;transparent&#34;,&#34;dash&#34;:&#34;solid&#34;},&#34;fill&#34;:&#34;toself&#34;,&#34;fillcolor&#34;:&#34;rgba(0,255,0,0.1)&#34;,&#34;hoveron&#34;:&#34;fills&#34;,&#34;showlegend&#34;:false,&#34;xaxis&#34;:&#34;x&#34;,&#34;yaxis&#34;:&#34;y&#34;,&#34;hoverinfo&#34;:&#34;skip&#34;,&#34;frame&#34;:null},{&#34;x&#34;:[0,0,1,0.2,0],&#34;y&#34;:[0,0.2,0.8,0,0],&#34;text&#34;:&#34;&#34;,&#34;type&#34;:&#34;scatter&#34;,&#34;mode&#34;:&#34;lines&#34;,&#34;line&#34;:{&#34;width&#34;:1.88976377952756,&#34;color&#34;:&#34;transparent&#34;,&#34;dash&#34;:&#34;solid&#34;},&#34;fill&#34;:&#34;toself&#34;,&#34;fillcolor&#34;:&#34;rgba(0,255,0,0.1)&#34;,&#34;hoveron&#34;:&#34;fills&#34;,&#34;showlegend&#34;:false,&#34;xaxis&#34;:&#34;x&#34;,&#34;yaxis&#34;:&#34;y&#34;,&#34;hoverinfo&#34;:&#34;skip&#34;,&#34;frame&#34;:null},{&#34;x&#34;:[0.2,1,1,0.2],&#34;y&#34;:[0,0,0.8,0],&#34;text&#34;:&#34;NA&#34;,&#34;type&#34;:&#34;scatter&#34;,&#34;mode&#34;:&#34;lines&#34;,&#34;line&#34;:{&#34;width&#34;:1.88976377952756,&#34;color&#34;:&#34;transparent&#34;,&#34;dash&#34;:&#34;solid&#34;},&#34;fill&#34;:&#34;toself&#34;,&#34;fillcolor&#34;:&#34;rgba(255,0,0,0.1)&#34;,&#34;hoveron&#34;:&#34;fills&#34;,&#34;showlegend&#34;:false,&#34;xaxis&#34;:&#34;x&#34;,&#34;yaxis&#34;:&#34;y&#34;,&#34;hoverinfo&#34;:&#34;skip&#34;,&#34;frame&#34;:null},{&#34;x&#34;:[-0.05,1.05],&#34;y&#34;:[-0.25,0.85],&#34;text&#34;:&#34;&#34;,&#34;type&#34;:&#34;scatter&#34;,&#34;mode&#34;:&#34;lines&#34;,&#34;line&#34;:{&#34;width&#34;:1.88976377952756,&#34;color&#34;:&#34;rgba(0,0,0,0.2)&#34;,&#34;dash&#34;:&#34;solid&#34;},&#34;hoveron&#34;:&#34;points&#34;,&#34;showlegend&#34;:false,&#34;xaxis&#34;:&#34;x&#34;,&#34;yaxis&#34;:&#34;y&#34;,&#34;hoverinfo&#34;:&#34;text&#34;,&#34;frame&#34;:null},{&#34;x&#34;:[0.5,0.75,0.2],&#34;y&#34;:[0.75,0.2,0.8],&#34;text&#34;:[&#34;Open access, &lt;br /&gt; not reproducible, &lt;br /&gt; how we learn&#34;,&#34;Backdoor package access, &lt;br /&gt; offline systems without a strategy&#34;,&#34;Admins involved, &lt;br /&gt; no testing, &lt;br /&gt; slow updates, &lt;br /&gt; high risk of breakage&#34;],&#34;type&#34;:&#34;scatter&#34;,&#34;mode&#34;:&#34;markers&#34;,&#34;marker&#34;:{&#34;autocolorscale&#34;:false,&#34;color&#34;:&#34;rgba(255,0,0,1)&#34;,&#34;opacity&#34;:1,&#34;size&#34;:5.66929133858268,&#34;symbol&#34;:&#34;circle&#34;,&#34;line&#34;:{&#34;width&#34;:1.88976377952756,&#34;color&#34;:&#34;rgba(255,0,0,1)&#34;}},&#34;hoveron&#34;:&#34;points&#34;,&#34;name&#34;:&#34;FALSE&#34;,&#34;legendgroup&#34;:&#34;FALSE&#34;,&#34;showlegend&#34;:true,&#34;xaxis&#34;:&#34;x&#34;,&#34;yaxis&#34;:&#34;y&#34;,&#34;hoverinfo&#34;:&#34;text&#34;,&#34;frame&#34;:null},{&#34;x&#34;:[0.1,0.5,0.8],&#34;y&#34;:[0.1,0.5,0.8],&#34;text&#34;:[&#34;Admins test and approve &lt;br /&gt; a subset of CRAN&#34;,&#34;All or most of CRAN, &lt;br /&gt; updated with R versions, &lt;br /&gt; tied to a system library&#34;,&#34;Open access, user or system &lt;br /&gt; records per-project dependencies&#34;],&#34;type&#34;:&#34;scatter&#34;,&#34;mode&#34;:&#34;markers&#34;,&#34;marker&#34;:{&#34;autocolorscale&#34;:false,&#34;color&#34;:&#34;rgba(163,197,134,1)&#34;,&#34;opacity&#34;:1,&#34;size&#34;:5.66929133858268,&#34;symbol&#34;:&#34;circle&#34;,&#34;line&#34;:{&#34;width&#34;:1.88976377952756,&#34;color&#34;:&#34;rgba(163,197,134,1)&#34;}},&#34;hoveron&#34;:&#34;points&#34;,&#34;name&#34;:&#34; TRUE&#34;,&#34;legendgroup&#34;:&#34; TRUE&#34;,&#34;showlegend&#34;:true,&#34;xaxis&#34;:&#34;x&#34;,&#34;yaxis&#34;:&#34;y&#34;,&#34;hoverinfo&#34;:&#34;text&#34;,&#34;frame&#34;:null},{&#34;x&#34;:[0.125,0.525,0.525,0.825,0.775,0.225],&#34;y&#34;:[0.125,0.525,0.775,0.825,0.225,0.825],&#34;text&#34;:[&#34;Validated&#34;,&#34;Shared Baseline&#34;,&#34;Wild West&#34;,&#34;Snapshot&#34;,&#34;Blocked&#34;,&#34;Ticket System&#34;],&#34;hovertext&#34;:[&#34;&#34;,&#34;&#34;,&#34;&#34;,&#34;&#34;,&#34;&#34;,&#34;&#34;],&#34;textfont&#34;:{&#34;size&#34;:14.6645669291339,&#34;color&#34;:&#34;rgba(0,0,0,1)&#34;},&#34;type&#34;:&#34;scatter&#34;,&#34;mode&#34;:&#34;text&#34;,&#34;hoveron&#34;:&#34;points&#34;,&#34;showlegend&#34;:false,&#34;xaxis&#34;:&#34;x&#34;,&#34;yaxis&#34;:&#34;y&#34;,&#34;hoverinfo&#34;:&#34;text&#34;,&#34;frame&#34;:null}],&#34;layout&#34;:{&#34;margin&#34;:{&#34;t&#34;:43.7625570776256,&#34;r&#34;:7.30593607305936,&#34;b&#34;:40.1826484018265,&#34;l&#34;:89.8630136986302},&#34;font&#34;:{&#34;color&#34;:&#34;rgba(0,0,0,1)&#34;,&#34;family&#34;:&#34;&#34;,&#34;size&#34;:14.6118721461187},&#34;title&#34;:&#34;Reproducing Environments: Strategies and Danger Zones&#34;,&#34;titlefont&#34;:{&#34;color&#34;:&#34;rgba(0,0,0,1)&#34;,&#34;family&#34;:&#34;&#34;,&#34;size&#34;:17.5342465753425},&#34;xaxis&#34;:{&#34;domain&#34;:[0,1],&#34;automargin&#34;:true,&#34;type&#34;:&#34;linear&#34;,&#34;autorange&#34;:false,&#34;range&#34;:[-0.05,1.05],&#34;tickmode&#34;:&#34;array&#34;,&#34;ticktext&#34;:[&#34;Admins&#34;,&#34;&#34;,&#34;&#34;,&#34;&#34;,&#34;Users&#34;],&#34;tickvals&#34;:[0,0.25,0.5,0.75,1],&#34;categoryorder&#34;:&#34;array&#34;,&#34;categoryarray&#34;:[&#34;Admins&#34;,&#34;&#34;,&#34;&#34;,&#34;&#34;,&#34;Users&#34;],&#34;nticks&#34;:null,&#34;ticks&#34;:&#34;&#34;,&#34;tickcolor&#34;:null,&#34;ticklen&#34;:3.65296803652968,&#34;tickwidth&#34;:0,&#34;showticklabels&#34;:true,&#34;tickfont&#34;:{&#34;color&#34;:&#34;rgba(77,77,77,1)&#34;,&#34;family&#34;:&#34;&#34;,&#34;size&#34;:11.689497716895},&#34;tickangle&#34;:-0,&#34;showline&#34;:false,&#34;linecolor&#34;:null,&#34;linewidth&#34;:0,&#34;showgrid&#34;:true,&#34;gridcolor&#34;:&#34;rgba(235,235,235,1)&#34;,&#34;gridwidth&#34;:0.66417600664176,&#34;zeroline&#34;:false,&#34;anchor&#34;:&#34;y&#34;,&#34;title&#34;:&#34;Who is Responsible for Reproducing the Environment?&#34;,&#34;titlefont&#34;:{&#34;color&#34;:&#34;rgba(0,0,0,1)&#34;,&#34;family&#34;:&#34;&#34;,&#34;size&#34;:14.6118721461187},&#34;hoverformat&#34;:&#34;.2f&#34;},&#34;yaxis&#34;:{&#34;domain&#34;:[0,1],&#34;automargin&#34;:true,&#34;type&#34;:&#34;linear&#34;,&#34;autorange&#34;:false,&#34;range&#34;:[-0.05,1.05],&#34;tickmode&#34;:&#34;array&#34;,&#34;ticktext&#34;:[&#34;Locked Down&#34;,&#34;&#34;,&#34;&#34;,&#34;&#34;,&#34;Open&#34;],&#34;tickvals&#34;:[0,0.25,0.5,0.75,1],&#34;categoryorder&#34;:&#34;array&#34;,&#34;categoryarray&#34;:[&#34;Locked Down&#34;,&#34;&#34;,&#34;&#34;,&#34;&#34;,&#34;Open&#34;],&#34;nticks&#34;:null,&#34;ticks&#34;:&#34;&#34;,&#34;tickcolor&#34;:null,&#34;ticklen&#34;:3.65296803652968,&#34;tickwidth&#34;:0,&#34;showticklabels&#34;:true,&#34;tickfont&#34;:{&#34;color&#34;:&#34;rgba(77,77,77,1)&#34;,&#34;family&#34;:&#34;&#34;,&#34;size&#34;:11.689497716895},&#34;tickangle&#34;:-0,&#34;showline&#34;:false,&#34;linecolor&#34;:null,&#34;linewidth&#34;:0,&#34;showgrid&#34;:true,&#34;gridcolor&#34;:&#34;rgba(235,235,235,1)&#34;,&#34;gridwidth&#34;:0.66417600664176,&#34;zeroline&#34;:false,&#34;anchor&#34;:&#34;x&#34;,&#34;title&#34;:&#34;Package Access&#34;,&#34;titlefont&#34;:{&#34;color&#34;:&#34;rgba(0,0,0,1)&#34;,&#34;family&#34;:&#34;&#34;,&#34;size&#34;:14.6118721461187},&#34;hoverformat&#34;:&#34;.2f&#34;},&#34;shapes&#34;:[{&#34;type&#34;:&#34;rect&#34;,&#34;fillcolor&#34;:null,&#34;line&#34;:{&#34;color&#34;:null,&#34;width&#34;:0,&#34;linetype&#34;:[]},&#34;yref&#34;:&#34;paper&#34;,&#34;xref&#34;:&#34;paper&#34;,&#34;x0&#34;:0,&#34;x1&#34;:1,&#34;y0&#34;:0,&#34;y1&#34;:1}],&#34;showlegend&#34;:false,&#34;legend&#34;:{&#34;bgcolor&#34;:null,&#34;bordercolor&#34;:null,&#34;borderwidth&#34;:0,&#34;font&#34;:{&#34;color&#34;:&#34;rgba(0,0,0,1)&#34;,&#34;family&#34;:&#34;&#34;,&#34;size&#34;:11.689497716895},&#34;y&#34;:1},&#34;hovermode&#34;:&#34;closest&#34;,&#34;barmode&#34;:&#34;relative&#34;},&#34;config&#34;:{&#34;doubleClick&#34;:&#34;reset&#34;,&#34;modeBarButtonsToAdd&#34;:[{&#34;name&#34;:&#34;Collaborate&#34;,&#34;icon&#34;:{&#34;width&#34;:1000,&#34;ascent&#34;:500,&#34;descent&#34;:-50,&#34;path&#34;:&#34;M487 375c7-10 9-23 5-36l-79-259c-3-12-11-23-22-31-11-8-22-12-35-12l-263 0c-15 0-29 5-43 15-13 10-23 23-28 37-5 13-5 25-1 37 0 0 0 3 1 7 1 5 1 8 1 11 0 2 0 4-1 6 0 3-1 5-1 6 1 2 2 4 3 6 1 2 2 4 4 6 2 3 4 5 5 7 5 7 9 16 13 26 4 10 7 19 9 26 0 2 0 5 0 9-1 4-1 6 0 8 0 2 2 5 4 8 3 3 5 5 5 7 4 6 8 15 12 26 4 11 7 19 7 26 1 1 0 4 0 9-1 4-1 7 0 8 1 2 3 5 6 8 4 4 6 6 6 7 4 5 8 13 13 24 4 11 7 20 7 28 1 1 0 4 0 7-1 3-1 6-1 7 0 2 1 4 3 6 1 1 3 4 5 6 2 3 3 5 5 6 1 2 3 5 4 9 2 3 3 7 5 10 1 3 2 6 4 10 2 4 4 7 6 9 2 3 4 5 7 7 3 2 7 3 11 3 3 0 8 0 13-1l0-1c7 2 12 2 14 2l218 0c14 0 25-5 32-16 8-10 10-23 6-37l-79-259c-7-22-13-37-20-43-7-7-19-10-37-10l-248 0c-5 0-9-2-11-5-2-3-2-7 0-12 4-13 18-20 41-20l264 0c5 0 10 2 16 5 5 3 8 6 10 11l85 282c2 5 2 10 2 17 7-3 13-7 17-13z m-304 0c-1-3-1-5 0-7 1-1 3-2 6-2l174 0c2 0 4 1 7 2 2 2 4 4 5 7l6 18c0 3 0 5-1 7-1 1-3 2-6 2l-173 0c-3 0-5-1-8-2-2-2-4-4-4-7z m-24-73c-1-3-1-5 0-7 2-2 3-2 6-2l174 0c2 0 5 0 7 2 3 2 4 4 5 7l6 18c1 2 0 5-1 6-1 2-3 3-5 3l-174 0c-3 0-5-1-7-3-3-1-4-4-5-6z&#34;},&#34;click&#34;:&#34;function(gd) { \n        // is this being viewed in RStudio?\n        if (location.search == &#39;?viewer_pane=1&#39;) {\n          alert(&#39;To learn about plotly for collaboration, visit:\\n https://cpsievert.github.io/plotly_book/plot-ly-for-collaboration.html&#39;);\n        } else {\n          window.open(&#39;https://cpsievert.github.io/plotly_book/plot-ly-for-collaboration.html&#39;, &#39;_blank&#39;);\n        }\n      }&#34;}],&#34;cloud&#34;:false,&#34;displayModeBar&#34;:false},&#34;source&#34;:&#34;A&#34;,&#34;attrs&#34;:{&#34;f87a7b9b28cc&#34;:{&#34;intercept&#34;:{},&#34;slope&#34;:{},&#34;type&#34;:&#34;scatter&#34;},&#34;f87a793a87a&#34;:{&#34;x&#34;:{},&#34;y&#34;:{},&#34;text&#34;:{},&#34;x.1&#34;:{},&#34;y.1&#34;:{}},&#34;f87a6f19e578&#34;:{&#34;x&#34;:{},&#34;y&#34;:{},&#34;text&#34;:{},&#34;x.1&#34;:{},&#34;y.1&#34;:{}},&#34;f87ad286244&#34;:{&#34;x&#34;:{},&#34;y&#34;:{},&#34;text&#34;:{},&#34;x.1&#34;:{},&#34;y.1&#34;:{}},&#34;f87a564b651b&#34;:{&#34;x&#34;:{},&#34;y&#34;:{},&#34;text&#34;:{},&#34;x.1&#34;:{},&#34;y.1&#34;:{}},&#34;f87a6fdafbdf&#34;:{&#34;intercept&#34;:{},&#34;slope&#34;:{}},&#34;f87a11ce26d8&#34;:{&#34;x&#34;:{},&#34;y&#34;:{},&#34;colour&#34;:{},&#34;text&#34;:{},&#34;x.1&#34;:{},&#34;y.1&#34;:{}},&#34;f87a75583809&#34;:{&#34;x&#34;:{},&#34;y&#34;:{},&#34;label&#34;:{},&#34;x.1&#34;:{},&#34;y.1&#34;:{}}},&#34;cur_data&#34;:&#34;f87a7b9b28cc&#34;,&#34;visdat&#34;:{&#34;f87a7b9b28cc&#34;:[&#34;function (y) &#34;,&#34;x&#34;],&#34;f87a793a87a&#34;:[&#34;function (y) &#34;,&#34;x&#34;],&#34;f87a6f19e578&#34;:[&#34;function (y) &#34;,&#34;x&#34;],&#34;f87ad286244&#34;:[&#34;function (y) &#34;,&#34;x&#34;],&#34;f87a564b651b&#34;:[&#34;function (y) &#34;,&#34;x&#34;],&#34;f87a6fdafbdf&#34;:[&#34;function (y) &#34;,&#34;x&#34;],&#34;f87a11ce26d8&#34;:[&#34;function (y) &#34;,&#34;x&#34;],&#34;f87a75583809&#34;:[&#34;function (y) &#34;,&#34;x&#34;]},&#34;highlight&#34;:{&#34;on&#34;:&#34;plotly_click&#34;,&#34;persistent&#34;:false,&#34;dynamic&#34;:false,&#34;selectize&#34;:false,&#34;opacityDim&#34;:0.2,&#34;selected&#34;:{&#34;opacity&#34;:1},&#34;debounce&#34;:0},&#34;base_url&#34;:&#34;https://plot.ly&#34;,&#34;.hideLegend&#34;:true},&#34;evals&#34;:[&#34;config.modeBarButtonsToAdd.0.click&#34;],&#34;jsHooks&#34;:[]}&lt;/script&gt;
&lt;p&gt;For more information on picking and using these strategies, please visit
&lt;a href=&#34;https://environments.rstudio.com&#34; class=&#34;uri&#34;&gt;https://environments.rstudio.com&lt;/a&gt;. By adopting a strategy for reproducible
environments, R users, administrators, and teams can solve a number of important
challenges. Ultimately, reproducible work adds credibility, creating a solid
foundation for research, business applications, and production systems. We are
excited to be working on tools to make reproducible work in R easy and fun. We
look forward to your feedback, community discussions, and future posts.&lt;/p&gt;
&lt;/div&gt;

        &lt;script&gt;window.location.href=&#39;https://rviews.rstudio.com/2019/04/22/reproducible-environments/&#39;;&lt;/script&gt;
      </description>
    </item>
    
    <item>
      <title>July 2017 New Package Picks</title>
      <link>https://rviews.rstudio.com/2017/08/28/july-2017-new-package-picks/</link>
      <pubDate>Mon, 28 Aug 2017 00:00:00 +0000</pubDate>
      
      <guid>https://rviews.rstudio.com/2017/08/28/july-2017-new-package-picks/</guid>
      <description>
        


&lt;p&gt;Two hundred and twenty-four new packages were added to CRAN in July. Below are my picks for the “Top 40” packages arranged in eight categories: Machine Learning, Science, Statistics, Numerical Methods, Statistics, Time Series, Utilities and Visualizations. Science and Numerical Methods are categories that I have not used before. The idea behind the Science category is to find a place for packages that appear to have been created with some particular scientific investigation or problem in mind. The Numerical Methods category is reserved for packages that, while they may be targeted to some general form of statistical analysis, emphasize numerical considerations and carefully constructed algorithms.&lt;/p&gt;
&lt;p&gt;As always, my selections are heavily weighted by the availability of documentation beyond what is included in the package PDF. I rarely select packages that do not have a vignette or some other source of documentation about how the package can be used, for example, README files or a referenced URL. I almost never select “professional” packages, which I define as packages that are devoted to esoteric topics that either include no documentation beyond the PDF, or exclusively refer to papers that are protected by a paywall. While these packages usually comprise serious, valuable contributions to R, they also appear to have been written for very small audiences.&lt;/p&gt;
&lt;p&gt;Finally, before listing this month’s Top 40, I would like to call attention to an awesome display of productivity by Kevin R. Coombes, who had fourteen packages on various topics accepted by CRAN in July: &lt;a href=&#34;https://CRAN.R-project.org/package=BimodalIndex&#34;&gt;BimodalIndex&lt;/a&gt;, &lt;a href=&#34;https://cran.r-project.org/package=ClassComparison&#34;&gt;ClassComparison&lt;/a&gt;, &lt;a href=&#34;https://cran.r-project.org/package=ClassDiscovery&#34;&gt;ClassDiscovery&lt;/a&gt;, &lt;a href=&#34;https://cran.r-project.org/package=CrossValidate&#34;&gt;CrossValidate&lt;/a&gt;, &lt;a href=&#34;https://CRAN.R-project.org/package=GenAlgo&#34;&gt;GeneAlgo&lt;/a&gt;, &lt;a href=&#34;https://cran.r-project.org/package=integIRTy&#34;&gt;IntegIRTy&lt;/a&gt;, &lt;a href=&#34;https://cran.r-project.org/package=Modeler&#34;&gt;Modeler&lt;/a&gt;, &lt;a href=&#34;https://cran.r-project.org/package=NameNeedle&#34;&gt;NameNeedle&lt;/a&gt;, &lt;a href=&#34;https://cran.r-project.org/package=oompaBase&#34;&gt;oompaBase&lt;/a&gt;, &lt;a href=&#34;https://cran.r-project.org/package=oompaData&#34;&gt;oompaData&lt;/a&gt;, &lt;a href=&#34;https://CRAN.R-project.org/package=PreProcess&#34;&gt;PreProcess&lt;/a&gt;, &lt;a href=&#34;https://cran.r-project.org/package=SIBERG&#34;&gt;SIBERG&lt;/a&gt;, &lt;a href=&#34;https://cran.r-project.org/package=TailRank&#34;&gt;TailRank&lt;/a&gt; and &lt;a href=&#34;https://CRAN.R-project.org/package=Umpire&#34;&gt;Umpire&lt;/a&gt;.&lt;/p&gt;
&lt;div id=&#34;the-july-2017-top-40&#34; class=&#34;section level2&#34;&gt;
&lt;h2&gt;The July 2017 Top 40&lt;/h2&gt;
&lt;div id=&#34;machine-learning&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Machine Learning&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://CRAN.R-project.org/package=autoBagging&#34;&gt;autoBagging&lt;/a&gt; v0.1.0: Implements a framework for automated machine learning that focuses on the optimization of bagging workflows. See the &lt;a href=&#34;https://arxiv.org/pdf/1706.09367.pdf&#34;&gt;paper&lt;/a&gt; by Pinto et al. for details.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=grf&#34;&gt;grf&lt;/a&gt; v0.9.3: Provides methods for non-parametric least-squares regression, quantile regression, and treatment effect estimation (optionally using instrumental variables).&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=iRF&#34;&gt;iRF&lt;/a&gt; v2.0.0: Provides functions to iteratively grow feature-weighted random forests and finds high-order feature interactions in a stable fashion. Look &lt;a href=&#34;https://arxiv.org/pdf/1706.08457.pdf&#34;&gt;here&lt;/a&gt; for the details.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=keras&#34;&gt;keras&lt;/a&gt; v2.0.5: Implements an interface to &lt;a href=&#34;https://keras.io/&#34;&gt;Keras&lt;/a&gt;, a high-level neural networks API that runs on top of TensorFlow. There is an &lt;a href=&#34;https://cran.rstudio.com/web/packages/keras/vignettes/backend.html&#34;&gt;Overview&lt;/a&gt; of the Keras backend, and a number of vignettes including &lt;a href=&#34;https://cran.rstudio.com/web/packages/keras/vignettes/about_keras_layers.html&#34;&gt;Keras Layers&lt;/a&gt;, &lt;a href=&#34;https://cran.rstudio.com/web/packages/keras/vignettes/custom_layers.html&#34;&gt;Writing Custom Keras Layers&lt;/a&gt;, &lt;a href=&#34;https://cran.rstudio.com/web/packages/keras/vignettes/about_keras_models.html&#34;&gt;Keras Models&lt;/a&gt;, &lt;a href=&#34;https://cran.rstudio.com/web/packages/keras/vignettes/applications.html&#34;&gt;Using Pre-Trained Models&lt;/a&gt;, &lt;a href=&#34;https://cran.rstudio.com/web/packages/keras/vignettes/faq.html&#34;&gt;Sequential Models&lt;/a&gt; and more.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=randomForestExplainer&#34;&gt;randomForestExplainer&lt;/a&gt; v0.9: Provide set of tools to help explain which variables are most important in a random forests. The &lt;a href=&#34;https://cran.rstudio.com/web/packages/randomForestExplainer/vignettes/randomForestExplainer.html&#34;&gt;vignette&lt;/a&gt; provides examples of visualizing multiple performance measures.&lt;/p&gt;
&lt;div class=&#34;figure&#34;&gt;
&lt;img src=&#34;/post/2017-08-21-Rickert-July-Pkgs_files/randomForestExplainer.png&#34; /&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=sgmcmc&#34;&gt;sgmcmc&lt;/a&gt; v0.1.0: Provides functions to implement stochastic gradient Markov chain Monte Carlo (SGMCMC) methods for user-specified models. &lt;a href=&#34;https://www.tensorflow.org/&#34;&gt;TensorFlow&lt;/a&gt; is used to calculate the gradients. There is a &lt;a href=&#34;https://cran.rstudio.com/web/packages/sgmcmc/vignettes/sgmcmc.html&#34;&gt;Getting Started Guide&lt;/a&gt; and vignettes for &lt;a href=&#34;https://cran.rstudio.com/web/packages/sgmcmc/vignettes/gaussMixture.html&#34;&gt;Simulating from a Gaussian Mixture&lt;/a&gt;, a &lt;a href=&#34;https://cran.rstudio.com/web/packages/sgmcmc/vignettes/mvGauss.html&#34;&gt;Multivariate Gaussian Mixture&lt;/a&gt; and &lt;a href=&#34;https://cran.rstudio.com/web/packages/sgmcmc/vignettes/logisticRegression.html&#34;&gt;Logistic Regression&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;numerical-methods&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Numerical Methods&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://CRAN.R-project.org/package=mcMST&#34;&gt;mcMST&lt;/a&gt; v1.0.0: Provides algorithms to approximate the Pareto-front of multi-criteria minimum spanning tree problems, along with a toolbox for generating multi-objective benchmark graph problems. There is an &lt;a href=&#34;https://cran.rstudio.com/web/packages/mcMST/vignettes/introduction.html&#34;&gt;Introduction&lt;/a&gt; and a vignette on &lt;a href=&#34;https://cran.rstudio.com/web/packages/mcMST/vignettes/Generation.html&#34;&gt;benchmarking optimization problems&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=mize&#34;&gt;mize&lt;/a&gt; v0.1.1: Provides optimization algorithms, including conjugate gradient (&lt;a href=&#34;https://en.wikipedia.org/wiki/Conjugate_gradient_method&#34;&gt;CG&lt;/a&gt;), Broyden-Fletcher-Goldfarb-Shanno (&lt;a href=&#34;https://en.wikipedia.org/wiki/Broyden%E2%80%93Fletcher%E2%80%93Goldfarb%E2%80%93Shanno_algorithm&#34;&gt;BFGS&lt;/a&gt;), and the limited memory BFGS (&lt;a href=&#34;https://en.wikipedia.org/wiki/Limited-memory_BFGS&#34;&gt;L-BFGS&lt;/a&gt;) methods. There is an &lt;a href=&#34;https://cran.rstudio.com/web/packages/mize/vignettes/mize.html&#34;&gt;introduction&lt;/a&gt; and vignettes on &lt;a href=&#34;https://cran.rstudio.com/web/packages/mize/vignettes/convergence.html&#34;&gt;Convergence&lt;/a&gt;, &lt;a href=&#34;https://cran.rstudio.com/web/packages/mize/vignettes/mmds.html&#34;&gt;Metric MDS&lt;/a&gt;, and &lt;a href=&#34;https://cran.rstudio.com/web/packages/mize/vignettes/stateful.html&#34;&gt;Stateful Optimization&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=SuperGauss&#34;&gt;SuperGauss&lt;/a&gt; v1.0: Provides a fast C++ based algorithm for the evaluation of Gaussian time series, along with efficient implementations of the score and Hessian functions. The &lt;a href=&#34;https://cran.rstudio.com/web/packages/SuperGauss/vignettes/SuperGauss-quicktut.html&#34;&gt;vignette&lt;/a&gt; shows an example of inference for the Hurst parameter.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;science&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Science&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=GROAN&#34;&gt;GROAN&lt;/a&gt; v1.0.0: Is a workbench for testing genomic regression accuracy on noisy phenotypes. It contains a noise-generator function. There is a vignette on &lt;a href=&#34;https://cran.rstudio.com/web/packages/GROAN/vignettes/GROAN.vignette.html&#34;&gt;Genomic Regression in Noisy Scenarios&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=noaastormevents&#34;&gt;noaastormevents&lt;/a&gt; v0.1.0: Allows users to explore and plot data from the National Oceanic and Atmospheric Administration (NOAA) Storm Events database for United States counties through R. There is an &lt;a href=&#34;https://cran.rstudio.com/web/packages/noaastormevents/vignettes/noaastormevents.html&#34;&gt;Overview&lt;/a&gt; and a vignette providing &lt;a href=&#34;https://cran.rstudio.com/web/packages/noaastormevents/vignettes/details.html&#34;&gt;details&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;figure&#34;&gt;
&lt;img src=&#34;/post/2017-08-21-Rickert-July-Pkgs_files/noaastormevents.png&#34; /&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=swmmr&#34;&gt;swmmr&lt;/a&gt; v0.7.0: Provides functions to connect the &lt;a href=&#34;https://www.epa.gov/water-research/storm-water-management-model-swmm&#34;&gt;Storm Water Management Model&lt;/a&gt; (SWMM) of the United States Environmental Protection Agency (US EPA).&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;statistics&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Statistics&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=blandr&#34;&gt;blandr&lt;/a&gt; v0.4.3: Contains functions to carry out Bland Altman analyses (also known as a Tukey mean-difference plot) as described by &lt;a href=&#34;http://www.thelancet.com/journals/lancet/article/PIIS0140-6736(86)90837-8/abstract&#34;&gt;JM Bland and DG Altman&lt;/a&gt;. See the &lt;a href=&#34;https://cran.rstudio.com/web/packages/blandr/vignettes/introduction.html&#34;&gt;vignette&lt;/a&gt; for details.&lt;/p&gt;
&lt;div class=&#34;figure&#34;&gt;
&lt;img src=&#34;/post/2017-08-21-Rickert-July-Pkgs_files/blandr.png&#34; /&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=cnbdistr&#34;&gt;cnbdistr&lt;/a&gt; v1.0.1: Provides the distribution functions for the Conditional Negative Binomial distribution. The &lt;a href=&#34;https://cran.rstudio.com/web/packages/cnbdistr/vignettes/my-vignette.html&#34;&gt;vignette&lt;/a&gt; shows the math.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=diffpriv&#34;&gt;diffpriv&lt;/a&gt; v0.4.2: Provides an implementation of major general-purpose mechanisms for privatizing statistics, models, and machine learners, within the framework of differential privacy of &lt;a href=&#34;https://link.springer.com/chapter/10.1007%2F11681878_14&#34;&gt;Dwork et al. (2006)&lt;/a&gt;. There is a vignette on &lt;a href=&#34;https://cran.rstudio.com/web/packages/diffpriv/vignettes/bernstein.pdf&#34;&gt;The Bernstein Mechanism&lt;/a&gt; and an &lt;a href=&#34;https://cran.rstudio.com/web/packages/diffpriv/vignettes/diffpriv.pdf&#34;&gt;Introduction&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=fence&#34;&gt;fence&lt;/a&gt; v1.0: Implements a new class of model-selection strategies for mixed-model selection, which includes linear and generalized linear mixed models. The idea involves a procedure to isolate a subgroup of what are known as correct models (of which the optimal model is a member). The package points to several references in the literature including papers by &lt;a href=&#34;https://projecteuclid.org/euclid.aos/1216237296&#34;&gt;Jiang et al. 2008&lt;/a&gt;, &lt;a href=&#34;http://publications.gc.ca/collections/collection_2010/statcan/12-001-X/12-001-x2010001-eng.pdf&#34;&gt;Jiang et al. 2010&lt;/a&gt;, &lt;a href=&#34;http://www.intlpress.com/site/pub/files/_fulltext/journals/sii/2011/0004/0003/SII-2011-0004-0003-a014.pdf&#34;&gt;Jiang et al. 2011&lt;/a&gt;, &lt;a href=&#34;https://academic.oup.com/biostatistics/article-lookup/doi/10.1093/biostatistics/kxr046&#34;&gt;Nguyen et al. 2012&lt;/a&gt;, and &lt;a href=&#34;https://www.hindawi.com/archive/2014/830821/&#34;&gt;Jiang 2014&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=llogistic&#34;&gt;llogistic&lt;/a&gt; v1.0.0: Provides density, distribution, quantile and random generation functions for the L-Logistic distribution with parameters &lt;code&gt;m&lt;/code&gt; (median) and &lt;code&gt;b&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=metaBMA&#34;&gt;metaBMA&lt;/a&gt; v0.3.9: Provides functions to compute the posterior model probabilities the meta-analysis models assuming either fixed or random effects. See the paper by &lt;a href=&#34;http://www.tandfonline.com/doi/full/10.1080/23743603.2017.1326760&#34;&gt;Gronau et al.&lt;/a&gt; and the &lt;a href=&#34;https://cran.rstudio.com/web/packages/metaBMA/vignettes/metaBMA.html&#34;&gt;vignette&lt;/a&gt; for details.&lt;/p&gt;
&lt;div class=&#34;figure&#34;&gt;
&lt;img src=&#34;/post/2017-08-21-Rickert-July-Pkgs_files/metaBMA.png&#34; /&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=MFKnockoffs&#34;&gt;MFKnockoffs&lt;/a&gt; v0.9: Provides functions to create model-free knockoffs, a general procedure for controlling the false discovery rate &lt;a href=&#34;https://en.wikipedia.org/wiki/False_discovery_rate&#34;&gt;FDR&lt;/a&gt; when performing variable selection. There are vignettes on using the the Model-Free Knockoff Filter &lt;a href=&#34;https://cran.rstudio.com/web/packages/MFKnockoffs/vignettes/MFKnockoffs.html&#34;&gt;Basic&lt;/a&gt; and &lt;a href=&#34;https://cran.rstudio.com/web/packages/MFKnockoffs/vignettes/advanced.html&#34;&gt;Advanced&lt;/a&gt;, and &lt;a href=&#34;https://cran.rstudio.com/web/packages/MFKnockoffs/vignettes/fixed.html&#34;&gt;Using the Filter with a Fixed Design Matrix&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=Modeler&#34;&gt;Modeler&lt;/a&gt; v3.4.2: Provides tools to define classes and methods to learn models and use them to predict binary outcomes. There is a vignette on &lt;a href=&#34;https://cran.rstudio.com/web/packages/Modeler/vignettes/Modeler.pdf&#34;&gt;Learning and Predicting&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=msde&#34;&gt;msde&lt;/a&gt; v1.0: Implements an MCMC sampler for the posterior distribution of arbitrary, time-homogeneous, multivariate stochastic differential equation (SDE) models with possibly latent components. There is a vignette with &lt;a href=&#34;https://cran.rstudio.com/web/packages/msde/vignettes/msde-exmodels.html&#34;&gt;Sample Models&lt;/a&gt; and another for &lt;a href=&#34;https://cran.rstudio.com/web/packages/msde/vignettes/msde-quicktut.html&#34;&gt;Inference&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=RBesT&#34;&gt;RBesT&lt;/a&gt; v1.2-3: Provides a tool set to support Bayesian evidence synthesis, including meta-analysis, prior derivation from historical data, operating characteristics, and analysis. There is an &lt;a href=&#34;https://cran.rstudio.com/web/packages/RBesT/vignettes/introduction.html&#34;&gt;Introduction&lt;/a&gt; and vignettes on &lt;a href=&#34;https://cran.rstudio.com/web/packages/RBesT/vignettes/customizing_plots.html&#34;&gt;Customizing Plots&lt;/a&gt;, &lt;a href=&#34;https://cran.rstudio.com/web/packages/RBesT/vignettes/introduction_normal.html&#34;&gt;Normal Endpoints&lt;/a&gt;, and &lt;a href=&#34;https://cran.rstudio.com/web/packages/RBesT/vignettes/robustMAP.html&#34;&gt;Robust Priors&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;figure&#34;&gt;
&lt;img src=&#34;/post/2017-08-21-Rickert-July-Pkgs_files/RBesT.png&#34; /&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=RcppTN&#34;&gt;RcppTN&lt;/a&gt; v0.2-1: Provides R and C++ functions to generate random deviates from and calculate moments of a Truncated Normal distribution using the &lt;a href=&#34;https://link.springer.com/article/10.1007%2FBF00143942&#34;&gt;algorithm of Robert (1995)&lt;/a&gt;. There is a &lt;a href=&#34;https://cran.rstudio.com/web/packages/RcppTN/vignettes/using.pdf&#34;&gt;vignette&lt;/a&gt; showing how to use the package, and one for &lt;a href=&#34;https://cran.rstudio.com/web/packages/RcppTN/vignettes/speed.pdf&#34;&gt;Performance&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=rsample&#34;&gt;rsample&lt;/a&gt; v0.0.1: Provides classes and functions to create and summarize different kinds of resampling objects. There is a vignette on the &lt;a href=&#34;https://cran.rstudio.com/web/packages/rsample/vignettes/Basics.html&#34;&gt;Basics&lt;/a&gt;, and another for &lt;a href=&#34;https://cran.rstudio.com/web/packages/rsample/vignettes/Working_with_rsets.html&#34;&gt;Working with rsets&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=SMM&#34;&gt;SMM&lt;/a&gt; v1.0: Provides functions to simulate and estimate of Multi-State Discrete-Time Semi-Markov and Markov Models. The implementation details are described in two papers by Barbu, Limnios &lt;a href=&#34;http://www.tandfonline.com/doi/abs/10.1080/10485250701261913&#34;&gt;one&lt;/a&gt; and &lt;a href=&#34;http://www.tandfonline.com/doi/abs/10.1080/10485250701261913&#34;&gt;two&lt;/a&gt;, and one &lt;a href=&#34;http://www.tandfonline.com/doi/abs/10.1080/10485252.2011.555543&#34;&gt;paper&lt;/a&gt; by Trevezas and Limnios. The &lt;a href=&#34;https://cran.rstudio.com/web/packages/SMM/vignettes/SMM.pdf&#34;&gt;vignette&lt;/a&gt; also provides considerable detail.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=treeDA&#34;&gt;treeDA&lt;/a&gt; v0.02: Provides functions to perform sparse discriminant analysis on a combination of node and leaf predictors, when the predictor variables are structured according to a tree. There is a &lt;a href=&#34;https://cran.rstudio.com/web/packages/treeDA/vignettes/treeda-vignette.html&#34;&gt;vignette&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;figure&#34;&gt;
&lt;img src=&#34;/post/2017-08-21-Rickert-July-Pkgs_files/treeDA.png&#34; /&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=vennLasso&#34;&gt;vennLasso&lt;/a&gt; v0.1: Provides variable selection and estimation routines for models stratified by binary factors. There is a &lt;a href=&#34;https://cran.rstudio.com/web/packages/vennLasso/vignettes/using_the_vennLasso_package.pdf&#34;&gt;vignette&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;time-series&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Time Series&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=sweep&#34;&gt;sweep&lt;/a&gt; v0.2.0: Provides tools for bringing &lt;code&gt;tidyverse&lt;/code&gt; organization to time series forecasting. There is an &lt;a href=&#34;https://cran.rstudio.com/web/packages/sweep/vignettes/SW00_Introduction_to_sweep.html&#34;&gt;Introduction&lt;/a&gt;, as well as vignettes on &lt;a href=&#34;https://cran.rstudio.com/web/packages/sweep/vignettes/SW01_Forecasting_Time_Series_Groups.html&#34;&gt;Forecasting&lt;/a&gt; and &lt;a href=&#34;https://cran.rstudio.com/web/packages/sweep/vignettes/SW02_Forecasting_Multiple_Models.html&#34;&gt;Forecasting with Mutiple Models&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;figure&#34;&gt;
&lt;img src=&#34;/post/2017-08-21-Rickert-July-Pkgs_files/sweep.png&#34; /&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=timetk&#34;&gt;timetk&lt;/a&gt; v0.1.0: Implements a toolkit for working with time series, including functions to interrogate time series objects and tibbles, and coerce between time-based tibbles (‘tbl’) and ‘xts’, ‘zoo’, and ‘ts’. There is an &lt;a href=&#34;https://cran.rstudio.com/web/packages/timetk/vignettes/TK00_Time_Series_Coercion.html&#34;&gt;Introduction&lt;/a&gt; and vignettes on &lt;a href=&#34;https://cran.rstudio.com/web/packages/timetk/vignettes/TK01_Working_With_Time_Series_Index.html&#34;&gt;Working with time series index&lt;/a&gt;, &lt;a href=&#34;https://cran.rstudio.com/web/packages/timetk/vignettes/TK02_Making_A_Future_Time_Series_Index.html&#34;&gt;Making a Future Index&lt;/a&gt;, and &lt;a href=&#34;https://cran.rstudio.com/web/packages/timetk/vignettes/TK03_Forecasting_Using_Time_Series_Signature.html&#34;&gt;Forecasting&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;utilities&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Utilities&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=dataCompareR&#34;&gt;dataCompareR&lt;/a&gt; v0.1.0: Contains functions to compare two tabular data objects with the specific intent of showing differences in a way that should make it easier to understand the differences. The &lt;a href=&#34;https://cran.rstudio.com/web/packages/dataCompareR/vignettes/dataCompareR.html&#34;&gt;vignette&lt;/a&gt; shows how to use the package.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=dataPreparation&#34;&gt;dataPreparation&lt;/a&gt; v0.2: Provides functions for data preparation that take advantage of &lt;code&gt;data.table&lt;/code&gt; efficiencies. There is a &lt;a href=&#34;https://cran.rstudio.com/web/packages/dataPreparation/vignettes/dataPreparation.html&#34;&gt;tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=datastructures&#34;&gt;datastructures&lt;/a&gt; v0.2.0: Provides implementations of advanced data structures such as hashmaps, heaps, and queues. There is a &lt;a href=&#34;https://cran.rstudio.com/web/packages/datastructures/vignettes/datastructures.html&#34;&gt;Tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=docker&#34;&gt;docker&lt;/a&gt; v0.0.2: Provides access to the Docker SDK from R via python, using the &lt;a href=&#34;https://CRAN.R-project.org/package=reticulate&#34;&gt;reticulate&lt;/a&gt; package. There is a &lt;a href=&#34;https://cran.rstudio.com/web/packages/docker/vignettes/Getting_Started_with_Docker.html&#34;&gt;vignette&lt;/a&gt; to get you started.&lt;/p&gt;
&lt;div class=&#34;figure&#34;&gt;
&lt;img src=&#34;/post/2017-08-21-Rickert-July-Pkgs_files/vennLasso.png&#34; /&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=seplyr&#34;&gt;seplyr&lt;/a&gt; v0.1.4: Supplies standard evaluation adapter methods for important common &lt;code&gt;dplyr&lt;/code&gt; methods that currently have a non-standard programming interface. There is an &lt;a href=&#34;https://cran.rstudio.com/web/packages/seplyr/vignettes/seplyr.html&#34;&gt;Introduction&lt;/a&gt;, as well as vignettes for &lt;a href=&#34;https://cran.rstudio.com/web/packages/seplyr/vignettes/using_seplyr.html&#34;&gt;Using seplyr with dplyr&lt;/a&gt;, the operator &lt;a href=&#34;https://cran.rstudio.com/web/packages/seplyr/vignettes/named_map_builder.html&#34;&gt;named map builder&lt;/a&gt;, and the operator &lt;a href=&#34;https://cran.rstudio.com/web/packages/seplyr/vignettes/rename_se.html&#34;&gt;rename_se&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://CRAN.R-project.org/package=vetr&#34;&gt;vetr&lt;/a&gt; v0.1.0: Provides a declarative template-based framework for verifying that objects meet structural requirements, and auto-composing error messages when they do not. There is a vignette on &lt;a href=&#34;https://cran.rstudio.com/web/packages/vetr/vignettes/alike.html&#34;&gt;Alikeness&lt;/a&gt; and one on &lt;a href=&#34;https://cran.rstudio.com/web/packages/vetr/vignettes/vetr.html&#34;&gt;Trust, but Verify&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;visualization&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Visualization&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=ggjoy&#34;&gt;ggjoy&lt;/a&gt; v0.3.0: Joyplots provide a convenient way of visualizing changes in distributions over time or space. &lt;code&gt;ggjoy&lt;/code&gt; enables the creation of such plots in &lt;code&gt;ggplot2&lt;/code&gt;. There is an &lt;a href=&#34;https://cran.rstudio.com/web/packages/ggjoy/vignettes/introduction.html&#34;&gt;Introduction&lt;/a&gt; and a &lt;a href=&#34;https://cran.r-project.org/web/packages/ggjoy/vignettes/gallery.html&#34;&gt;Gallery&lt;/a&gt; of examples.&lt;/p&gt;
&lt;div class=&#34;figure&#34;&gt;
&lt;img src=&#34;/post/2017-08-21-Rickert-July-Pkgs_files/ggjoy.png&#34; /&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=ggplotgui&#34;&gt;ggplotgui&lt;/a&gt; v1.0.0: Implements a &lt;code&gt;shiny&lt;/code&gt; app for creating and exploring &lt;code&gt;ggplot2&lt;/code&gt; graphs that also generates the required R code. Look &lt;a href=&#34;https://github.com/gertstulp/ggplotgui/&#34;&gt;here&lt;/a&gt; for examples.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=loon&#34;&gt;loon&lt;/a&gt; v1.1.0: Is an extensible toolkit for interactive data visualization and exploration. There are two vignettes containing examples: &lt;a href=&#34;https://cran.rstudio.com/web/packages/loon/vignettes/minorities.html&#34;&gt;Visible minorities in Canadian cities&lt;/a&gt; and &lt;a href=&#34;https://cran.rstudio.com/web/packages/loon/vignettes/teaching-example-smoothing.html&#34;&gt;Smoothers and Bone Mineral Density&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://CRAN.R-project.org/package=sugrrants&#34;&gt;sugrrants&lt;/a&gt; v0.1.0: Provides &lt;code&gt;ggplot2&lt;/code&gt; graphics for analyzing time series data with the goal of fitting into the &lt;code&gt;tidyverse&lt;/code&gt; and grammar of graphics framework. The &lt;a href=&#34;https://cran.rstudio.com/web/packages/sugrrants/vignettes/frame-calendar.html&#34;&gt;vignette&lt;/a&gt; provides examples.&lt;/p&gt;
&lt;div class=&#34;figure&#34;&gt;
&lt;img src=&#34;/post/2017-08-21-Rickert-July-Pkgs_files/sugrrants.png&#34; /&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=tidygraph&#34;&gt;tidygraph&lt;/a&gt; v1.0.0: A graph, while not “tidy” in itself, can be thought of as two tidy data frames describing node and edge data respectively. &lt;code&gt;tidygraph&lt;/code&gt; provides functions to manipulate these virtual data frames using the &lt;code&gt;dplyr&lt;/code&gt; package. Look &lt;a href=&#34;https://cran.rstudio.com/web/packages/tidygraph/README.html&#34;&gt;here&lt;/a&gt; for some details.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cran.r-project.org/package=visdat&#34;&gt;visdat&lt;/a&gt; v0.1.0: provides functions to create preliminary exploratory data visualizations of an entire dataset using &lt;code&gt;ggplot2&lt;/code&gt;. There is a &lt;a href=&#34;https://cran.rstudio.com/web/packages/visdat/vignettes/using_visdat.html&#34;&gt;vignette&lt;/a&gt; to get you started.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

        &lt;script&gt;window.location.href=&#39;https://rviews.rstudio.com/2017/08/28/july-2017-new-package-picks/&#39;;&lt;/script&gt;
      </description>
    </item>
    
  </channel>
</rss>
