<p><div><div><div><div data-show-faces="false" data-height="21" data-width="100" data-layout="button_count" data-send="true" data-href="https://www.r-bloggers.com/no-strings-attached/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="https://www.johnmackintosh.com/2018-03-04-no-strings-attached/"> HighlandR</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<p>	a faceting function with bare variable names in ggplot2 – </p>
<p>I’m working on a package of dplyr and ggplot2 functions that I can use on a day to day basis to plot data over time. I’ve done some basic experimenting with my preferred ggplot2 theme settings (highlandrthemes – it’s a thing), and the next stage is to get some commonly used plot structures sorted out so that I don’t have to go hunting around for code all the time.</p>
<p>As I’ve been getting to grips with tidy evaluation, I wondered if I could create a ggplot2 function that would allow me to input “bare” variable names instead of inputting them as a string in the function call. I’m not a huge fan of piping direct from dplyr straight into ggplot2 but I figured if I could suss out how to create these functions, I would have the ability to pipe or not as the case required. If I get my package working properly, there will be a master function that will use tidy eval for dplyr based data munging which will feed into ggplot2.</p>
<p>The main requirement is having a grouping / faceting variable defined so that I can have my plots facet_wrap(ed) the way I want. As it turns out, the “~” in the facet_wrap() call is a bit pesky, to say the least.</p>
<p>Here’s the (admittedly tortuous) set-up – this data should exist within the base R installation. In real life, the data I’m working with results in a plot with 90 facets. All the solutions here worked with my dataset, and the example data below:</p>
<div>
<div>
<pre><code><span>
</span><span>library</span><span>(</span><span>dplyr</span><span>)</span><span>
</span><span>library</span><span>(</span><span>ggplot2</span><span>)</span><span>
</span><span>library</span><span>(</span><span>tidyr</span><span>)</span><span>
</span><span>library</span><span>(</span><span>tibble</span><span>)</span><span>
</span><span>data</span><span> </span><span>&lt;-</span><span> </span><span>list</span><span>(</span><span>fdeaths</span><span>,</span><span>mdeaths</span><span>,</span><span>ldeaths</span><span>)</span><span> </span><span>#time series data- needs prep</span><span>
</span><span>names</span><span>(</span><span>data</span><span>)[</span><span>1</span><span>:</span><span>3</span><span>]</span><span> </span><span>&lt;-</span><span> </span><span>c</span><span>(</span><span>&quot;fdeaths&quot;</span><span>,</span><span>&quot;mdeaths&quot;</span><span>,</span><span>&quot;ldeaths&quot;</span><span>)</span><span>
</span><span>data</span><span> </span><span>&lt;-</span><span> </span><span>as_tibble</span><span>(</span><span>data</span><span>)</span><span>
</span><span>startdate</span><span> </span><span>&lt;-</span><span> </span><span>as.Date</span><span>(</span><span>'1974-1-1'</span><span>)</span><span>
</span><span>data</span><span>$</span><span>date</span><span> </span><span>&lt;-</span><span> </span><span>seq.Date</span><span>(</span><span>startdate</span><span>,</span><span>by</span><span> </span><span>=</span><span> </span><span>'month'</span><span>,</span><span>length.out</span><span> </span><span>=</span><span> </span><span>72</span><span>)</span><span>
</span><span>newdata</span><span> </span><span>&lt;-</span><span> </span><span>tidyr</span><span>::</span><span>gather</span><span>(</span><span>data</span><span>,</span><span> </span><span>key</span><span> </span><span>=</span><span> </span><span>key</span><span>,</span><span> </span><span>value</span><span> </span><span>=</span><span> </span><span>value</span><span>,</span><span>-</span><span>date</span><span>)</span><span>
</span><span>newdata</span><span>$</span><span>value</span><span> </span><span>&lt;-</span><span> </span><span>as.numeric</span><span>(</span><span>newdata</span><span>$</span><span>value</span><span>)</span><span>
</span><span>manual_facet_plot</span><span> </span><span>&lt;-</span><span> </span><span>function</span><span>(</span><span>df</span><span>,</span><span> </span><span>datecol</span><span>,</span><span> </span><span>y_var</span><span>,</span><span>...</span><span>){</span><span>
</span><span>p</span><span> </span><span>&lt;-</span><span> </span><span>ggplot2</span><span>::</span><span>ggplot</span><span>(</span><span>df</span><span>,</span><span>ggplot2</span><span>::</span><span>aes_</span><span>(</span><span>substitute</span><span>(</span><span>datecol</span><span>),</span><span>substitute</span><span>(</span><span>y_var</span><span>)))</span><span> </span><span>+</span><span> </span><span>ggplot2</span><span>::</span><span>geom_line</span><span>(</span><span>colour</span><span> </span><span>=</span><span> </span><span>&quot;grey40&quot;</span><span>,</span><span> </span><span>group</span><span> </span><span>=</span><span> </span><span>1</span><span>)</span><span> </span><span>+</span><span>
</span><span>ggplot2</span><span>::</span><span>geom_point</span><span>(</span><span>colour</span><span> </span><span>=</span><span> </span><span>&quot;grey40&quot;</span><span>,</span><span> </span><span>na.rm</span><span> </span><span>=</span><span> </span><span>TRUE</span><span>)</span><span> </span><span>p</span><span>
</span><span>}</span><span>
</span><span># works - but I want the facet_wrap call inside the function</span><span>
</span><span>p</span><span> </span><span>&lt;-</span><span> </span><span>manual_facet_plot</span><span>(</span><span>newdata</span><span>,</span><span>date</span><span>,</span><span>value</span><span>)</span><span> </span><span>+</span><span> </span><span>facet_wrap</span><span>(</span><span> </span><span>~</span><span> </span><span>key</span><span>,</span><span> </span><span>ncol</span><span> </span><span>=</span><span> </span><span>3</span><span>)</span><span>
</span><span>p</span><span>
</span></code></pre>
</div>
</div>
<p><img alt="2018-03-04-manual-plot.png" src="https://i2.wp.com/www.johnmackintosh.com/img/2018-03-04-manual-plot.png?w=456&ssl=1" data-recalc-dims="1"></p>
<p>The manual_facet_plot is a start, but for a really useful function, I don’t want to have to add the faceting line by hand every time I run it. So this was my second attempt – which didn’t work:</p>
<div>
<div>
<pre><code><span>
</span><span>fail_plot</span><span> </span><span>&lt;-</span><span> </span><span>function</span><span>(</span><span>df</span><span>,</span><span> </span><span>datecol</span><span>,</span><span> </span><span>y_var</span><span>,</span><span> </span><span>group_var</span><span>,</span><span>...</span><span>){</span><span>
</span><span>p</span><span> </span><span>&lt;-</span><span> </span><span>ggplot2</span><span>::</span><span>ggplot</span><span>(</span><span>df</span><span>,</span><span>ggplot2</span><span>::</span><span>aes_</span><span>(</span><span>substitute</span><span>(</span><span>datecol</span><span>),</span><span>substitute</span><span>(</span><span>y_var</span><span>)))</span><span> </span><span>+</span><span> </span><span>ggplot2</span><span>::</span><span>geom_line</span><span>(</span><span>colour</span><span> </span><span>=</span><span> </span><span>&quot;grey40&quot;</span><span>,</span><span> </span><span>group</span><span> </span><span>=</span><span> </span><span>1</span><span>)</span><span> </span><span>+</span><span>
</span><span>ggplot2</span><span>::</span><span>geom_point</span><span>(</span><span>colour</span><span> </span><span>=</span><span> </span><span>&quot;grey40&quot;</span><span>,</span><span> </span><span>na.rm</span><span> </span><span>=</span><span> </span><span>TRUE</span><span>)</span><span> </span><span>+</span><span>
</span><span>ggplot2</span><span>::</span><span>facet_wrap</span><span>(</span><span> </span><span>~</span><span> </span><span>eval</span><span>(</span><span>group_var</span><span>),</span><span> </span><span>ncol</span><span> </span><span>=</span><span> </span><span>3</span><span>)</span><span>
</span><span>p</span><span>
</span><span>}</span><span>
</span><span># fails miserably</span><span>
</span><span>#fail_plot(newdata,date,value,key)</span><span>
</span></code></pre>
</div>
</div>
<p>Normally my Google-Fu is pretty strong, but I couldn’t figure out how to do this (, if I quoted one variable,I kept getting “variable not found” style errors for the rest), and couldn’t find anything anywhere so I asked on the RStudio community site for some help. (Let’s not mention the reprex fiasco).</p>
<p>I got a response from <a rel="nofollow" href="https://twitter.com/PaulCampbell91" target="_blank">Paul Campbell</a>, who put me right:</p>
<div>
<div>
<pre><code><span>
</span><span>fail_plot</span><span> </span><span>&lt;-</span><span> </span><span>function</span><span>(</span><span>df</span><span>,</span><span> </span><span>datecol</span><span>,</span><span> </span><span>y_var</span><span>,</span><span> </span><span>group_var</span><span> </span><span>=</span><span> </span><span>NULL</span><span>,</span><span> </span><span>...</span><span>){</span><span>
</span><span>p</span><span> </span><span>&lt;-</span><span> </span><span>ggplot2</span><span>::</span><span>ggplot</span><span>(</span><span>df</span><span>,</span><span>ggplot2</span><span>::</span><span>aes_</span><span>(</span><span>substitute</span><span>(</span><span>datecol</span><span>),</span><span>substitute</span><span>(</span><span>y_var</span><span>)))</span><span> </span><span>+</span><span> </span><span>ggplot2</span><span>::</span><span>geom_line</span><span>(</span><span>colour</span><span> </span><span>=</span><span> </span><span>&quot;grey40&quot;</span><span>,</span><span> </span><span>group</span><span> </span><span>=</span><span> </span><span>1</span><span>)</span><span> </span><span>+</span><span>
</span><span>ggplot2</span><span>::</span><span>geom_point</span><span>(</span><span>colour</span><span> </span><span>=</span><span> </span><span>&quot;grey40&quot;</span><span>,</span><span> </span><span>na.rm</span><span> </span><span>=</span><span> </span><span>TRUE</span><span>)</span><span>
</span><span>if</span><span> </span><span>(</span><span>!</span><span>is.null</span><span>(</span><span>group_var</span><span>))</span><span> </span><span>p</span><span> </span><span>&lt;-</span><span> </span><span>p</span><span> </span><span>+</span><span> </span><span>ggplot2</span><span>::</span><span>facet_wrap</span><span>(</span><span>as.formula</span><span>(</span><span>paste</span><span>(</span><span>&quot;~&quot;</span><span>,</span><span> </span><span>group_var</span><span>)),</span><span> </span><span>ncol</span><span> </span><span>=</span><span> </span><span>3</span><span>)</span><span>
</span><span>print</span><span>(</span><span>p</span><span>)</span><span>
</span><span>}</span><span>
</span></code></pre>
</div>
</div>
<p>So, this now worked:</p>
<div>
<div>
<pre><code><span>fail_plot</span><span>(</span><span>newdata</span><span>,</span><span>date</span><span>,</span><span>value</span><span>,</span><span>&quot;key&quot;</span><span>)</span><span>
</span></code></pre>
</div>
</div>
<p><img alt="2018-03-04-Working-fail-plot.png" src="https://i2.wp.com/www.johnmackintosh.com/img/2018-03-04-Working-fail-plot.png?w=456&ssl=1" data-recalc-dims="1"></p>
<p>And I was happy with that.<br>
But then it started to annoy me a bit that I had to enter a string / quote the grouping variable, so here are some other ways I found of achieving this.<br>
Big thanks to the boffins on Stack Overflow who posted these solutions.</p>
<h2>Base R – retro chic</h2>
<p>Here’s a nice one for starters (in this example I have coloured the lines and points, for no particular reason) :</p>
<div>
<div>
<pre><code><span>
</span><span>plot_lines</span><span> </span><span>&lt;-</span><span> </span><span>function</span><span>(</span><span>df</span><span>,</span><span> </span><span>x</span><span>,</span><span> </span><span>y</span><span>,</span><span> </span><span>group</span><span>)</span><span> </span><span>eval.parent</span><span>(</span><span>substitute</span><span>(</span><span>
</span><span>df</span><span> </span><span>%>%</span><span>
</span><span>ggplot</span><span> </span><span>+</span><span> </span><span>geom_point</span><span>(</span><span>aes</span><span>(</span><span>x</span><span> </span><span>=</span><span> </span><span>x</span><span>,</span><span>y</span><span> </span><span>=</span><span> </span><span>y</span><span>,</span><span>colour</span><span> </span><span>=</span><span> </span><span>group</span><span>))</span><span> </span><span>+</span><span>
</span><span>geom_line</span><span>(</span><span>aes</span><span>(</span><span>x</span><span> </span><span>=</span><span> </span><span>x</span><span>,</span><span> </span><span>y</span><span> </span><span>=</span><span> </span><span>y</span><span>,</span><span> </span><span>group</span><span> </span><span>=</span><span> </span><span>group</span><span>,</span><span> </span><span>color</span><span> </span><span>=</span><span> </span><span>group</span><span>))</span><span> </span><span>+</span><span>
</span><span>facet_wrap</span><span>(</span><span> </span><span>~</span><span> </span><span>group</span><span>,</span><span> </span><span>ncol</span><span> </span><span>=</span><span> </span><span>3</span><span> </span><span>)</span><span> </span><span>+</span><span>
</span><span>theme</span><span>(</span><span>legend.position</span><span> </span><span>=</span><span> </span><span>&quot;none&quot;</span><span>)</span><span>
</span><span>))</span><span>
</span><span>p</span><span> </span><span>&lt;-</span><span> </span><span>plot_lines</span><span>(</span><span>newdata</span><span>,</span><span>date</span><span>,</span><span>value</span><span>,</span><span>key</span><span>)</span><span>
</span><span>p</span><span>
</span></code></pre>
</div>
</div>
<p><img alt="2018-03-04-base-r.png" src="https://i1.wp.com/www.johnmackintosh.com/img/2018-03-04-base-r.png?w=456&ssl=1" data-recalc-dims="1"></p>
<p>Excellent! No need to quote the grouping variable.</p>
<p>Here’s another solution using a package that was totally new to me (formula tools)</p>
<h2>Using formula.tools</h2>
<div>
<div>
<pre><code><span>
</span><span>library</span><span>(</span><span>ggplot2</span><span>)</span><span>
</span><span>library</span><span>(</span><span>formula.tools</span><span>)</span><span>
</span><span>tf_wrap</span><span> </span><span>&lt;-</span><span> </span><span>function</span><span>(</span><span>formula</span><span>,</span><span> </span><span>faceting</span><span> </span><span>=</span><span> </span><span>NULL</span><span>,</span><span> </span><span>data</span><span>,</span><span> </span><span>print</span><span> </span><span>=</span><span> </span><span>TRUE</span><span>)</span><span> </span><span>{</span><span>
</span><span>y</span><span> </span><span>&lt;-</span><span> </span><span>rhs</span><span>(</span><span>formula</span><span>)</span><span>
</span><span>x</span><span> </span><span>&lt;-</span><span> </span><span>lhs</span><span>(</span><span>formula</span><span>)</span><span>
</span><span>p</span><span> </span><span>&lt;-</span><span> </span><span>ggplot</span><span>(</span><span>environment</span><span> </span><span>=</span><span> </span><span>parent.frame</span><span>())</span><span> </span><span>p</span><span> </span><span>&lt;-</span><span> </span><span>p</span><span> </span><span>+</span><span> </span><span>geom_point</span><span>(</span><span>aes_string</span><span>(</span><span>x</span><span> </span><span>=</span><span> </span><span>x</span><span>,</span><span> </span><span>y</span><span> </span><span>=</span><span> </span><span>y</span><span>),</span><span> </span><span>data</span><span> </span><span>=</span><span> </span><span>data</span><span>,</span><span> </span><span>colour</span><span> </span><span>=</span><span> </span><span>&quot;grey40&quot;</span><span>)</span><span> </span><span>+</span><span> </span><span>geom_line</span><span>(</span><span>aes_string</span><span>(</span><span>x</span><span> </span><span>=</span><span> </span><span>x</span><span>,</span><span> </span><span>y</span><span> </span><span>=</span><span> </span><span>y</span><span>),</span><span> </span><span>data</span><span> </span><span>=</span><span> </span><span>data</span><span>,</span><span> </span><span>colour</span><span> </span><span>=</span><span> </span><span>&quot;grey40&quot;</span><span>)</span><span> </span><span>+</span><span> </span><span>theme_minimal</span><span>()</span><span>
</span><span>if</span><span> </span><span>(</span><span>!</span><span>is.null</span><span>(</span><span>faceting</span><span>))</span><span> </span><span>{</span><span>
</span><span>rhsfacet</span><span> </span><span>&lt;-</span><span> </span><span>all.vars</span><span>(</span><span>rhs</span><span>(</span><span>faceting</span><span>))</span><span>
</span><span>if</span><span> </span><span>(</span><span>length</span><span>(</span><span>rhsfacet</span><span>)</span><span> </span><span>==</span><span> </span><span>1</span><span> </span><span>&amp;</span><span> </span><span>any</span><span>(</span><span>rhsfacet</span><span> </span><span>%in%</span><span> </span><span>'.'</span><span>))</span><span> </span><span>{</span><span>rhsfacet</span><span> </span><span>&lt;-</span><span> </span><span>NULL</span><span>}</span><span>
</span><span>p</span><span> </span><span>&lt;-</span><span> </span><span>p</span><span> </span><span>+</span><span> </span><span>facet_wrap</span><span>(</span><span>facet</span><span> </span><span>=</span><span> </span><span>(</span><span>rhsfacet</span><span>),</span><span>ncol</span><span> </span><span>=</span><span> </span><span>3</span><span>)}</span><span>
</span><span>if</span><span> </span><span>(</span><span>print</span><span>)</span><span> </span><span>{</span><span>print</span><span>(</span><span>p</span><span>)}</span><span>
</span><span>}</span><span>
</span><span>tf_wrap</span><span>(</span><span>date</span><span> </span><span>~</span><span> </span><span>value</span><span>,</span><span> </span><span>faceting</span><span> </span><span>=</span><span> </span><span>~</span><span> </span><span>key</span><span>,</span><span> </span><span>data</span><span> </span><span>=</span><span> </span><span>newdata</span><span>,</span><span> </span><span>print</span><span> </span><span>=</span><span> </span><span>TRUE</span><span>)</span><span>
</span></code></pre>
</div>
</div>
<p><img alt="2018-03-04-formula-tools.png" src="https://i1.wp.com/www.johnmackintosh.com/img/2018-03-04-formula-tools.png?w=456&ssl=1" data-recalc-dims="1"></p>
<p>And finally, given that I’ve been tidily evaluating my dataframe and grouping variables in the run up to actually being able to produce my plot, here is an example that uses rlang:</p>
<h2>using rlang</h2>
<div>
<div>
<pre><code><span>
</span><span>gtest</span><span> </span><span>&lt;-</span><span> </span><span>function</span><span>(</span><span>df</span><span>,</span><span>x</span><span>,</span><span>y</span><span>,</span><span> </span><span>group</span><span>)</span><span> </span><span>{</span><span>
</span><span>x</span><span> </span><span>&lt;-</span><span> </span><span>rlang</span><span>::</span><span>enquo</span><span>(</span><span>x</span><span>)</span><span>
</span><span>y</span><span> </span><span>&lt;-</span><span> </span><span>rlang</span><span>::</span><span>enquo</span><span>(</span><span>y</span><span>)</span><span>
</span><span>group</span><span> </span><span>&lt;-</span><span> </span><span>rlang</span><span>::</span><span>enquo</span><span>(</span><span>group</span><span>)</span><span>
</span><span>p</span><span> </span><span>&lt;-</span><span> </span><span>ggplot</span><span>(</span><span>df</span><span>,</span><span>aes_</span><span>(</span><span>x</span><span> </span><span>=</span><span> </span><span>rlang</span><span>::</span><span>quo_expr</span><span>(</span><span>x</span><span>),</span><span>
</span><span>y</span><span> </span><span>=</span><span> </span><span>rlang</span><span>::</span><span>quo_expr</span><span>(</span><span>y</span><span>)))</span><span> </span><span>+</span><span> </span><span>geom_line</span><span>(</span><span>colour</span><span> </span><span>=</span><span> </span><span>&quot;grey40&quot;</span><span>,</span><span> </span><span>group</span><span> </span><span>=</span><span> </span><span>1</span><span>)</span><span> </span><span>+</span><span> </span><span>geom_point</span><span>(</span><span>colour</span><span> </span><span>=</span><span> </span><span>&quot;grey40&quot;</span><span>)</span><span> </span><span>+</span><span>
</span><span>facet_wrap</span><span>(</span><span>group</span><span>,</span><span> </span><span>ncol</span><span> </span><span>=</span><span> </span><span>3</span><span>)</span><span>
</span><span>#p &lt;-p + highlandrthemes::theme_highlandr() # custom theme that you won't have</span><span>
</span><span>p</span><span> </span><span>&lt;-</span><span> </span><span>p</span><span> </span><span>+</span><span> </span><span>ggtitle</span><span>(</span><span>label</span><span> </span><span>=</span><span> </span><span>&quot;thank you Stack Overflow&quot;</span><span>,</span><span>
</span><span>subtitle</span><span> </span><span>=</span><span> </span><span>&quot;ggplot with tidy eval and facet wrap - no strings&quot;</span><span>)</span><span>
</span><span>p</span><span> </span><span>&lt;-</span><span> </span><span>p</span><span> </span><span>+</span><span> </span><span>labs</span><span>(</span><span>x</span><span> </span><span>=</span><span> </span><span>NULL</span><span>,</span><span> </span><span>y</span><span> </span><span>=</span><span> </span><span>NULL</span><span>,</span><span> </span><span>caption</span><span> </span><span>=</span><span> </span><span>&quot;&quot;</span><span>)</span><span>
</span><span>p</span><span>
</span><span>ggsave</span><span>(</span><span>&quot;2018-03-04-rlang.png&quot;</span><span>)</span><span>
</span><span>}</span><span>
</span><span>gtest</span><span>(</span><span>newdata</span><span>,</span><span>date</span><span>,</span><span>value</span><span>,</span><span>key</span><span>)</span><span>
</span></code></pre>
</div>
</div>
<p><img alt="2018-03-04-rlang.png" src="https://i0.wp.com/www.johnmackintosh.com/img/2018-03-04-rlang.png?w=456&ssl=1" data-recalc-dims="1"></p>
<p>Brilliant. The base R and rlang solutions are based on the answer here:</p>
<p>https://stackoverflow.com/questions/47403477/functional-programming-with-dplyr</p>
<p>The formula.tools effort above was hacked from the second answer here :</p>
<p>https://stackoverflow.com/questions/14742287/ggplot2-aes-string-inside-a-function-via-formula-interface</p>
<p>Also – huge shout out to my good Twitter(and IRL) friend <a rel="nofollow" href="https://twitter.com/daibhaidhhen" target="_blank">David Henderson</a>, for linking me to a useful SO post which got me onto the right lines, and for being a top bloke all round. Cheers David :).</p>
<p>So – there you have it, if you want to create a function in ggplot2 that doesn’t rely on quoted variables – it <em>can</em> be done.</p>
	<p>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="https://www.johnmackintosh.com/2018-03-04-no-strings-attached/"> HighlandR</a></strong>.</div>
<hr>
<a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers.com</a> offers <strong><a rel="nofollow" href="https://feedburner.google.com/fb/a/mailverify?uri=RBloggers">daily e-mail updates</a></strong> about <a rel="nofollow" href="https://www.r-project.org/" title="The R Project for Statistical Computing">R</a> news and <a rel="nofollow" href="https://www.r-bloggers.com/search/tutorial" title="R tutorials">tutorials</a> on topics such as: <a rel="nofollow" href="https://www.r-bloggers.com/search/data%20science" title="Data science">Data science</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Big%20Data" title="Big Data">Big Data, <a rel="nofollow" href="https://www.r-users.com/" title="R jobs">R jobs</a>, visualization (<a rel="nofollow" href="https://www.r-bloggers.com/search/ggplot2" title="ggplot and ggplot2 tutorials">ggplot2</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/boxplot" title="Boxplots using lattice and ggplot2 tutorials">Boxplots</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/map" title="Maps and gis">maps</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/animation" title="Animation in R">animation</a>), programming (<a rel="nofollow" href="https://www.r-bloggers.com/search/RStudio" title="RStudio IDE for R">RStudio</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/sweave" title="Sweave and literate programming">Sweave</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/LaTeX" title="LaTeX in R">LaTeX</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/SQL" title="SQL and databases">SQL</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/eclipse" title="Eclipse IDE for R">Eclipse</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/git" title="git and github, Version Control System">git</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/hadoop" title="Large data in R using Hadoop">hadoop</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Web+Scraping" title="Web Scraping of google, facebook, yahoo, twitter and more using R">Web Scraping</a>) statistics (<a rel="nofollow" href="https://www.r-bloggers.com/search/regression" title="Regressions and ANOVA analysis tutorials">regression</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/PCA" title="principal component analysis tutorial">PCA</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/time+series" title="Time series">time series</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/trading" title="finance trading">trading</a>) and more...
<img width="1" alt="" src="http://feeds.feedburner.com/~r/RBloggers/~4/6fr6es-ZHb0" height="1"></a></div>