[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More


Mastering R Programming: Incorporating R code into a Sweave document

Published on
4,846 Points
3 Endorsements
Last Modified:
This article will show, step by step, how to integrate R code into a R Sweave document
I am writing this article as a continuation to my previous article, which introduced how to create a beautiful looking document with R Sweave.  However, the presentable look that Sweave documents offer is only half their power!  Another very important feature is incorporating R code directly into the script. That way when it compiles, you can have a presentable way to display your data!
To begin, create a Sweave document and populate it with the same sort of information as we did in the last article.  For reference I have included the code outline below:
\title {Using \LaTeX with R}
\author {Matthew Richardson\\
Written for Experts Exchange
\section*{Incorporating R code}

Open in new window

Now, in order to be able to include R code, you need to designate a special block so Sweave knows you mean it to utilize R’s capabilities.  This will be marked with:

Open in new window

You want to include this in the body of your script (see below)
Screen-Shot-2015-09-16-at-10.03.23-A.pngI know it looks odd at first.  You will know if R studio considers this block of code because it will become shaded on your script file and look like this:
Screen-Shot-2015-09-25-at-1.01.56-PM.pngWithin the opposite facing inequalities is your location to put arguments you want the code to follow.  To list some of the most frequently used:
  1. Echo = FALSE if you do not want the code to be generated in your document
Echo = TRUE if you would like the code for the output to display
  1. Results = hide if you want the output from the code to be hidden
Results = tex if you want the output of the code to display in LaTeX format
  1. Fig = TRUE to display figures from a line of code
  2. Label = fig1 (or whatever you want to name your figure)
*To list multiple, make sure to just separate the arguments with a comma (,) for example:

Open in new window

So lets do an example.  Say I wanted to write a LaTeX article about the popular book series A Song of Ice and Fire.  And lets say somewhere in that article I wanted to include the table found on the series Wikipedia page under Publishing History.  Well one step would be to make the table myself.  Or I could use the power of R to incorporate the information!  (See below)

<<echo=FALSE, results=hide>>=
url <- GET("http://en.wikipedia.org/wiki/A_Song_of_Ice_and_Fire")
table <- readHTMLTable(rawToChar(url$content), stringsAsFactors = F)
books <- as.data.frame(table[[2]])[,-1]
names(books) <- c("Title","Pages","Chapters","Audio Length","U.S. Release")
books[,2] <- c(704,768,992,753,1056,NA,NA)

Open in new window

I separated the two blocks of code to display that you can continue on with a different section of code with different arguments.  This would display like this:
And then to incorporate a figure I would just write:
plot(1:7,books[,2],xlim=c(1,5),xlab="Book Number",ylab="Number of Pages",main="Number of Pages per Book")

Open in new window

And I get a perfect figure created when I compile my document automatically!
Great isn’t it!?
I will leave you to experiment with any R code that you want to use, but I can attest to the fact that utilizing this powerful functionality of R and R Studio will make any dull LaTeX articles come to life with a lot less effort than before!
The only issue I would normally run into when I was first learning would be formatting.  There are a lot of tricks and work-arounds to fitting a graphic or plot on a page within the margins.  If you run into anything like this, or have follow-up questions, please don’t hesitate to leave a comment! I would love to help!

Featured Post

Learn Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

Join & Write a Comment

Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.
Loops Section Overview

Keep in touch with Experts Exchange

Tech news and trends delivered to your inbox every month