Playing with R and org-mode

Table of Contents


---> misc
| ---> 2016
| ---> 2015
| ---> 2014
| ---> 2013
| ---> 2012
`--> Agenda

Playing with babel

This test has been inspired by


Let's generate some data

n <- 50
x <- seq(1, n)
a.true <- 3
b.true <- 1.5
y.true <- a.true + b.true * x
s.true <- 17.3
y <- y.true + s.true * rnorm(n)
out1 <- lm(y ~ x)

Let's look at the summary of the linear regression

lm(formula = y ~ x)

    Min      1Q  Median      3Q     Max 
-32.131  -9.722  -2.701  10.029  40.094 

            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   1.1789     4.2621   0.277    0.783    
x             1.5420     0.1455  10.601 3.62e-14 ***
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 14.84 on 48 degrees of freedom
Multiple R-squared: 0.7007,	Adjusted R-squared: 0.6945 
F-statistic: 112.4 on 1 and 48 DF,  p-value: 3.621e-14

And now, let's plot all this:

  plot(x, y)


Sweet! Let's try a more complicated one, just for the fun:

dsmall <-diamonds[sample(nrow(diamonds), 100), ] 
ggplot(data = dsmall, aes(x=carat, y=price, color=color, shape=cut, size=carat)) + geom_point()



  • This org file was originally in my journal where one of the previous entry is configured to use beamer. Whatever I tried, the LaTeX export keeps using beamer. Isn't it possible to have in the same org files some part that are exported in beamer and others that are exported with article? It seems I can override TITLE and AUTHOR but not LaTeX_CLASS. The html export works as a charm though so whatever….
  • The file/figure export mechanism presented in the previous link is completely broken. But the one explained in works like a charm. The correct syntax for simple blocks is thus:

    #+BEGIN_SRC R :results output :exports both :session
      n <- 50
      x <- seq(1, n)
      a.true <- 3

    and for images:

    #+BEGIN_SRC R :results output graphics :file fig1.png :session :exports both
      plot(x, y)

    Then all you have to do is C-c C-c in the block to evaluate it. For the moment, I just finally got it working and I have to say I still haven't completely undertood how these :results and :exports really work.

  • Objects are thrown away from one block to another. I had to add a :session at the end of every block, which is a pain. Actually, I later realized that in already had set up a shortcu C-S-F4 that inserts an org-skeleton with default behavior for babel with R, including a global session flag.

            #+BABEL: :session *R* :cache yes :results output graphics :exports both :tangle yes

    Unfortunately, it does not seem to work (maybe syntax has changed) and I still need to add these :session flags everywhere…

  • This webpage also indicates a trick for inlining images that is just amazing! So when I open the org file in emacs it's almost wysiwyg! ;)

    	(add-hook 'org-babel-after-execute-hook 'org-display-inline-images) 
    	(add-hook 'org-mode-hook 'org-display-inline-images)

Entered on [2013-03-17 dim. 08:32]