# Mastering R Programming: Incorporating R code into a Sweave document

Published:
Updated:
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:
\documentclass{article}

\title {Using \LaTeX with R}
\author {Matthew Richardson\\
Written for Experts Exchange
}

\begin{document}
\SweaveOpts{concordance=TRUE}

\maketitle

\section*{Incorporating R code}

\end{document}


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:
<<>>=
(code)
@

You want to include this in the body of your script (see below)
I 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:
Within 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:
label=fig1,fig=TRUE,echo=FALSE


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>>=
library(XML)
library(httr)
url <- GET("http://en.wikipedia.org/wiki/A_Song_of_Ice_and_Fire")
table <- readHTMLTable(rawToChar(url\$content), stringsAsFactors = F)
str(table)
table[[2]]
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)
@

<<results=tex>>=
library(xtable)
xtable(books)
@


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:
<<label=fig1,fig=TRUE,echo=FALSE>>=
plot(1:7,books[,2],xlim=c(1,5),xlab="Book Number",ylab="Number of Pages",main="Number of Pages per Book")
@


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!
3
2,067 Views