Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mooc-rr
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ef68b2ba44cfb1c318289968b657c13f
mooc-rr
Commits
60fb9642
Commit
60fb9642
authored
Mar 23, 2020
by
ef68b2ba44cfb1c318289968b657c13f
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update toy_document_orgmode_R_en.org
parent
6d66cb65
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
51 additions
and
68 deletions
+51
-68
toy_document_orgmode_R_en.org
module2/exo1/toy_document_orgmode_R_en.org
+51
-68
No files found.
module2/exo1/toy_document_orgmode_R_en.org
View file @
60fb9642
#+TITLE: Your title
#+AUTHOR: Your name
#+DATE: Today's date
#+LANGUAGE: en
# #+PROPERTY: header-args :eval never-export
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
* Some explanations
This is an org-mode document with code examples in R. Once opened in
Emacs, this document can easily be exported to HTML, PDF, and Office
formats. For more information on org-mode, see
https://orgmode.org/guide/.
When you type the shortcut =C-c C-e h o=, this document will be
exported as HTML. All the code in it will be re-executed, and the
results will be retrieved and included into the exported document. If
you do not want to re-execute all code each time, you can delete the #
and the space before ~#+PROPERTY:~ in the header of this document.
Like we showed in the video, R code is included as follows (and is
exxecuted by typing ~C-c C-c~):
#+begin_src R :results output :exports both
print("Hello world!")
# -*- coding: utf-8 -*-
#+TITLE: On the computation of pi
#+AUTHOR: Jessica Dagostini
#+HTML_HEAD: <link rel="stylesheet" title="Standard" href="http://orgmode.org/worg/style/worg.css" type="text/css" />
#+STARTUP: overview indent inlineimages logdrawer
#+LANGUAGE: en
#+PROPERTY: header-args :eval never-export
#+EXPORT_SELECT_TAGS: Blog
#+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
#+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:t pri:nil tags:not-in-toc
* Table of Contents
- [[Asking the maths library][1. Asking the maths library]]
- [[Buffon's needle][2. Buffon's needle]]
- [[Using a surface fraction argument][3. Using a surface frcation argument]]
* Asking the maths library
My computer tells me that \pi is /approximatively/
#+begin_src R :results output :session *R* :exports both
pi
#+end_src
#+RESULTS:
: [1] "Hello world!"
And now the same but in an R session. This is the most frequent
situation, because R is really an interactive language. With a
session, R's state, i.e. the values of all the variables, remains
persistent from one code block to the next. The code is still executed
using ~C-c C-c~.
: [1] 3.141593
* Buffon's needle
Applying the method of [[https://en.wikipedia.org/wiki/Buffon's_needle_problem][Buffon's needle]], we get the *aprproximation*
#+begin_src R :results output :session *R* :exports both
summary(cars)
set.seed(42)
N = 100000
x = runif(N)
theta = pi/2*runif(N)
2/(mean(x+sin(theta)>1))
#+end_src
#+RESULTS:
: speed dist
: Min. : 4.0 Min. : 2.00
: 1st Qu.:12.0 1st Qu.: 26.00
: Median :15.0 Median : 36.00
: Mean :15.4 Mean : 42.98
: 3rd Qu.:19.0 3rd Qu.: 56.00
: Max. :25.0 Max. :120.00
Finally, an example for graphical output:
#+begin_src R :results output graphics :file "./cars.png" :exports results :width 600 :height 400 :session *R*
plot(cars)
: [1] 3.14327
* Using a surface fraction argument
A method that is easier to understand and does not make use of the sin
function is based on the fact that if $X ∼ U(0,1)$ and $Y ~ U(0,1)$,
then $P[X^2 + Y^2 \leq 1] = \pi/4$ (see [[https://en.wikipedia.org/wiki/Monte_Carlo_method]["Monte Carlo method" on
Wikipedia]]). The following code uses this approach:
#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R*
set.seed(42)
N = 1000
df = data.frame(X = runif(N), Y = runif(N))
df$Accept = (df$X**2 + df$Y**2 <=1)
library(ggplot2)
ggplot(df, aes(x=X,y=Y,color=Accept)) + geom_point(alpha=.2) + coord_fixed() + theme_bw()
#+end_src
#+RESULTS:
[[file:./cars.png]]
Note the parameter ~:exports results~, which indicates that the code
will not appear in the exported document. We recommend that in the
context of this MOOC, you always leave this parameter setting as
~:exports both~, because we want your analyses to be perfectly
transparent and reproducible.
Watch out: the figure generated by the code block is /not/ stored in
the org document. It's a plain file, here named ~cars.png~. You have
to commit it explicitly if you want your analysis to be legible and
understandable on GitLab.
[[file:/tmp/babel-12624X4Q/figure12624Gry.png]]
Finally, don't forget that we provide in the resource section of this
MOOC a configuration with a few keyboard shortcuts that allow you to
quickly create code blocks in R by typing ~<r~ or ~<R~ followed by
~Tab~.
It is then straightforward to obtain a (not really good) approximation
to \pi by counting how many times, on average, $X² + Y²$ is smaller then
1:
#+begin_src R :results output :session *R* :exports both
4*mean(df$Accept)
#+end_src
Now it's your turn! You can delete all this information and replace it
by your computational document.
#+RESULTS:
: [1] 3.156
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment