Add \emph manually with paste and add a new line with rbind , specifying the new line name in one place. Also, use stringsAsFactors=FALSE in the creation of the original data frame to make it possible to add a new value to the columns of taxa.
Then use sanitize.text.function=identity to xtable to keep the backslash in the \emph and hline.after to get the lines you want in.
\documentclass[12pt,letterpaper,oneside]{amsart} \usepackage{graphicx} \usepackage{longtable} \SweaveOpts{keep.source=TRUE} % Keeps formatting of the R code. \begin{document} <<echo=TRUE>>= taxa <- c("Arabidopsis thaliana", "Populus trichocarpa", "Brachypodium distachyon") sites <- c(270,320,240) data.df <- data.frame(taxa,sites, stringsAsFactors=FALSE) @ ~ <<label=tab2, echo=TRUE, results=tex>>= library(xtable) data.df$taxa <- paste("\\emph{",taxa,"}", sep="") data.df <- rbind(data.df, ` `=c("Total Sites", sum(data.df$sites))) data.table <- xtable(data.df, caption="Sweave Output") print(data.table, caption.placement="top", sanitize.text.function=identity, hline.after=c(-1,0,nrow(data.df)-1, nrow(data.df))) @ \end{document}
Aaron source share