{"id":45,"date":"2014-09-30T18:08:40","date_gmt":"2014-09-30T16:08:40","guid":{"rendered":"http:\/\/perso.ens-lyon.fr\/lise.vaudor\/?p=45"},"modified":"2017-05-23T15:45:27","modified_gmt":"2017-05-23T13:45:27","slug":"r-to-wordpress-via-markdown","status":"publish","type":"post","link":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/r-to-wordpress-via-markdown\/","title":{"rendered":"Publier du code R dans WordPress via Markdown"},"content":{"rendered":"<p><img decoding=\"async\" src=\"..\/..\/lise.vaudor\/Rfigures\/RMarkdown\/headband.png\" alt=\"plot of chunk\nheadband\" \/><\/p>\n<p>Ce post s&rsquo;adresse principalement \u00e0 ceux qui ont un <strong>blog sous WordPress<\/strong> et souhaiteraient y pr\u00e9senter des lignes de commande et des r\u00e9sultats obtenus sous <strong>R<\/strong>. Il est possible que peu de gens se sentent concern\u00e9s par ce besoin certes tr\u00e8s sp\u00e9cifique&#8230; Mais, pour ma part, j&rsquo;aurais \u00e9t\u00e9 bien heureuse de tomber sur un tel post lorsque je cherchais \u00e0 automatiser la production de mes posts depuis <strong>R<\/strong>\/<strong>RStudio<\/strong>. J&rsquo;ai n\u00e9anmoins b\u00e9n\u00e9fici\u00e9 de nombreux \u00ab\u00a0aiguillages\u00a0\u00bb de mes pairs blogueurs pour des besoins proches&#8230; J&rsquo;y ferai r\u00e9f\u00e9rence par la suite.<\/p>\n<h1>Qu&rsquo;est-ce que Markdown, et R Markdown?<\/h1>\n<p>Markdown est un <em>langage de balisage l\u00e9ger<\/em> qui permet un formatage de documents, par exemple pour une publication sous forme de page web. Sa syntaxe est assez \u00ab\u00a0transparente\u00a0\u00bb, et assez simple \u00e0 \u00e9crire (davantage, par exemple, qu&rsquo;un document \u00e9crit en html). Ainsi, un document format\u00e9 en <strong>Markdown<\/strong> est peu marqu\u00e9 par ses balises et est donc lisible comme tel.<\/p>\n<p>Par ailleurs, ce langage a pour avantage d&rsquo;\u00eatre assez facilement converti en de nombreux formats (classiquement, en <strong>html<\/strong>, <strong>pdf<\/strong>, ou <strong>Word<\/strong>; et sp\u00e9cifiquement, pour une publication plus ais\u00e9e sous WordPress, en <strong>Markdown<\/strong>).<\/p>\n<p>Pour en savoir davantage sur <strong>Markdown<\/strong>, c&rsquo;est <a href=\"http:\/\/fr.wikipedia.org\/wiki\/Markdown\">par ici<\/a> ou <a href=\"http:\/\/kbroman.org\/knitr_knutshell\/pages\/markdown.html\">par l\u00e0<\/a>.<\/p>\n<p>Il est possible d&rsquo;\u00e9crire des documents en <strong>R Markdown<\/strong>, en int\u00e9grant des morceaux de code <strong>R<\/strong> au document Markdown. Tous les posts de ce blog ont ainsi \u00e9t\u00e9<\/p>\n<ul>\n<li>\u00e9crits en <strong>R Markdown<\/strong>,<\/li>\n<li>convertis en <strong>Markdown<\/strong> gr\u00e2ce au package <strong>knitr<\/strong> de <strong>R<\/strong>,<\/li>\n<li>publi\u00e9s sous <strong>WordPress<\/strong>, \u00e0 l&rsquo;aide de l&rsquo;extension WordPress <strong>WP-Markdown<\/strong>.<\/li>\n<\/ul>\n<h1>En pratique, comment faire pour \u00e9crire un document R Markdown sous RStudio?<\/h1>\n<ul>\n<li>Ouvrez <strong>Rstudio<\/strong><\/li>\n<li>Si n\u00e9cessaire, installez les packages <code>markdown<\/code> et <code>knitr<\/code><\/li>\n<li>Ouvrez un nouveau fichier de type <strong>R Markdown<\/strong> (<strong>.Rmd<\/strong>)<\/li>\n<li>\n<p>Placez l&rsquo;ent\u00eate suivante en haut du document <strong>.Rmd<\/strong>:<\/p>\n<p><code>---<\/code><\/p>\n<p>output: md_document<\/p>\n<p><code>---<\/code><\/p>\n<\/li>\n<\/ul>\n<p>Notez que si l&rsquo;ent\u00eate ci-dessus ne figure pas dans votre document, le bouton <em>Knit<\/em> de RStudio vous proposera de convertir votre document non pas en un document <strong>Markdown<\/strong>, mais en un document <strong>html<\/strong>, <strong>pdf<\/strong>, ou <strong>Word<\/strong>.<\/p>\n<p>Ecrivez ensuite votre texte les conventions de notation <strong>Markdown<\/strong>, entrecoup\u00e9 de morceaux (chunks) de code <strong>R<\/strong>. Vous pouvez trouver un exemple minimal de document <strong>R Markdown<\/strong> (ainsi que des explications compl\u00e9mentaires) <a href=\"http:\/\/kbroman.org\/knitr_knutshell\/pages\/Rmarkdown.html\">sur ce post<\/a>. Par <strong>RStudio<\/strong>, on peut alors utiliser un bouton <em>Knit<\/em> qui convertit votre document <strong>R Markdown<\/strong> (<strong>.Rmd<\/strong>) en <strong>Markdown<\/strong> (<strong>.md<\/strong>).<\/p>\n<h1>Et pour inclure des figures et des donn\u00e9es?<\/h1>\n<p>Pour inclure vos figures ou donner acc\u00e8s \u00e0 des donn\u00e9es depuis votre blog, il est n\u00e9cessaire que les chemins des figures tels qu&rsquo;ils apparaissent dans votre document <strong>Markdown<\/strong> corresponde au chemin qu&rsquo;ils auront sur votre l&rsquo;espace serveur d\u00e9di\u00e9 \u00e0 votre blog.<\/p>\n<p>Pour ma part, j&rsquo;ai sp\u00e9cifi\u00e9 les chemins suivants pour y poser ou g\u00e9n\u00e9rer mes fichiers et figures:<\/p>\n<pre><code>post=\"RMarkdown\/\"\nsetwd(paste(\"C:\/Documents and Settings\/lvaudor\/Bureau\/mon_blog\/Posts\/\",post,sep=\"\"))\nfig.path=paste(\"..\/..\/lise.vaudor\/Rfigures\/\",post,sep=\"\")\ndata.path=paste(\"..\/..\/lise.vaudor\/Rdata\/\",post,sep=\"\")\ndir.create(fig.path,showWarnings=FALSE)\ndir.create(data.path,showWarnings=FALSE)\n<\/code><\/pre>\n<p>Ainsi, lorsque je veux cr\u00e9er ou lire un fichier, voici comment je proc\u00e8de:<\/p>\n<p>Pour l&rsquo;\u00e9criture:<\/p>\n<pre><code>x=1:10\ny=3*x+rnorm(10,0,2)\ndataxy=data.frame(x=x,y=y)\nwrite.csv(dataxy,file=paste(data.path,\"data_exemple.csv\", sep=\"\"))  \n<\/code><\/pre>\n<p>Pour la lecture:<\/p>\n<pre><code>dataxy_lu=read.csv(file=paste(data.path,\"data_exemple.csv\", sep=\"\"))\nprint(dataxy_lu)\n\n##     X  x      y\n## 1   1  1  4.462\n## 2   2  2  7.303\n## 3   3  3 10.869\n## 4   4  4 12.945\n## 5   5  5 16.654\n## 6   6  6 16.311\n## 7   7  7 23.189\n## 8   8  8 25.909\n## 9   9  9 25.754\n## 10 10 10 29.323\n<\/code><\/pre>\n<p>Et pour cr\u00e9er et inclure un graphique dans le document, il faut pr\u00e9ciser dans les options <strong>knitr<\/strong> l&rsquo;option <code>fig.path=fig.path<\/code><\/p>\n<p><img decoding=\"async\" src=\"..\/..\/lise.vaudor\/Rfigures\/RMarkdown\/mon_plot.png\" alt=\"plot of chunk\nmon_plot\" \/><\/p>\n<p>Enfin, en plus de copier le document Markdown sur votre tableau de bord WordPress pour cr\u00e9er votre nouveau post, n&rsquo;oubliez pas de copier les dossiers \u00ab\u00a0Rfigures\u00a0\u00bb et \u00ab\u00a0Rdata\u00a0\u00bb (qui pour le moment se trouvent sur votre ordinateur et votre ordinateur seulement) \u00e0 la racine de l&rsquo;espace serveur d\u00e9di\u00e9 \u00e0 votre site!!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ce post s&rsquo;adresse principalement \u00e0 ceux qui ont un blog sous WordPress et souhaiteraient y pr\u00e9senter des lignes de commande et des r\u00e9sultats obtenus sous R. Il est possible que peu de gens se sentent concern\u00e9s par ce besoin certes tr\u00e8s sp\u00e9cifique&#8230; Mais, pour ma part, j&rsquo;aurais \u00e9t\u00e9 bien heureuse de tomber sur un tel post lorsque je cherchais \u00e0 automatiser la production de mes posts depuis R\/RStudio. J&rsquo;ai n\u00e9anmoins.. <a href=\"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/r-to-wordpress-via-markdown\/\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-45","post","type-post","status-publish","format-standard","hentry","category-tous-les-posts"],"_links":{"self":[{"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/comments?post=45"}],"version-history":[{"count":46,"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/posts\/45\/revisions"}],"predecessor-version":[{"id":51,"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/posts\/45\/revisions\/51"}],"wp:attachment":[{"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/media?parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/categories?post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/perso.ens-lyon.fr\/lise.vaudor\/wp-json\/wp\/v2\/tags?post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}