Blog with RStudio, R, RMarkdown, Jekyll and Github

浅浅的花香味﹌ 2022-07-16 01:23 321阅读 0赞

In the first post of this new blog I’ll outline how I’ve set the blog up.

  • writing posts in Rmarkdown
  • converting posts to markdown from R
  • push to Github where Jekyll renders the markdown
  • organising all as an RStudio project

What I wanted

I wanted to be able to write about R related things without having to copy and paste code, figures or files. I had used Rmarkdownand knitr before so wanted to use them. I have a wordpress site elsewhere that someone helped me set up a couple of years ago with a blog that I’ve never used. Initially I tried seeing if I could create posts using RMarkdown and put them into that wordpress blog. A brief search revealed that was not straightforward and that Jekyll was the way to go.

What I’ve got

Now I have this blog set up so that I can write all of the posts (including this one) in RMarkdown (.Rmd) and run an R function to convert them to markdown (.md). The blog is hosted for free onGithub (you get one free personal site). The site is created usingJekyll on Github, so I didn’t need to install Jekyll or Ruby. I simply edit files locally, then commit and push to Github. I manage the site as an RStudio project, enabling me to edit text, keep track of files and interact with Git all from one interface.

How I got here (steps)

creating Jekyll site on Github

I used Barry Clarks amazing Jekyll-Now repository which you can fork directly from Github and start editing to customize. He gives excellent instructions. What attarcted me to it was that it takes a matter of minutes to set up initially and if you decide you don’t like it you can just delete.

Thanks to Jan Gorecki whose answer on stackoverflow pointed me in this direction and I’ve copied some extra features like the Links and Index pages from his site.

enabling editing of the site from RStudio

I cloned the Github repository for my site using RStudio :

  • File, New project, Version control, Clone git
  • Repo URL : https://github.com/AndySouth/andysouth.github.io
  • Project directory name : andysouth.github.io

setting up so that I can write the posts in RMarkdown

This was the tricky bit for me. I followed inspiration from Jason Bryerand Jon Zelner. I had to tweak them both, the relative paths of figures was my main stumbling block. This was partly because I’m running windows and I couldn’t run the shell scripts that they created. Instead I just run an R function rmd2md which is much the same as Jason’s with some edits to paths and jekyll rendering.

Jason’s function searches a folder that you specify for .Rmd files and then puts .md files into another folder. I set this up so that any plots are put into a third folder. Thus in the root of my site includes these 3 folders.


























FOLDER   CONTENTS
_Rmd   RMarkdown files that I edit
_md   md files created by RMarkdown
figures   plots created by any chunks of R code

This then means that any R plot is automatically generated, saved as a png and it’s address is written into the md document so that the plot is displayed in the blog. This is shown in a simple example below that queries the WHO API to get the number of cases of one of the forms of sleeping sickness in 2013.

  1. code <- "NTD_4"
  2. year <- 2013
  3. url <- paste0('http://apps.who.int/gho/athena/api/GHO/',code,'.csv?filter=COUNTRY:*;YEAR:',year)
  4. #read query result into dataframe
  5. dF <- read.csv(url,as.is=TRUE)
  6. library(rworldmap)
  7. sPDF <- joinCountryData2Map(dF, nameJoinColumn="COUNTRY", joinCode="ISO3")
  8. ## 24 codes from your data successfully matched countries in the map
  9. ## 0 codes from your data failed to match with a country code in the map
  10. ## 220 codes from the map weren't represented in your data
  11. mapCountryData(sPDF,nameColumnToPlot="Numeric",catMethod="fixedWidth",mapRegion="africa", mapTitle="Gambian sleeping sickness cases in 2013")

plot of chunk 14-12-10-rworldmap

The code syntax highlighting and dark grey background for both code and R text outputs are what come as the default with Jekyll-Now. I’m a little unsure about them. They seem to be specified in_highlights.scss, perhaps I’ll look at modifying later.

If you’d like to look here is the entire source code for the blog and for this individual page.

发表评论

表情:
评论列表 (有 0 条评论,321人围观)

还没有评论,来说两句吧...

相关阅读

    相关 学习R语言 - RStudio

    学习R语言 - RStudio R语言是一种用于数据分析和统计建模的强大编程语言。它具有广泛的应用领域,包括数据处理、可视化、机器学习等。RStudio是一个流行的集成开发环

    相关 R语言 - 安装RRStudio

    R语言 - 安装R及RStudio R是一种广泛使用的统计计算和数据分析编程语言。它的强大功能和丰富的社区支持使其成为数据科学家和研究人员的首选工具之一。本文将详细介绍如何安