2014-06-10 32 views

risposta

5

Una strategia consiste nell'utilizzare il sanitize.text.function dalla funzione print in xtable. Impostazione sanitize.text.function = function(x){x} cause print semplicemente per ribadire i contenuti del frame di dati per successiva interpretazione da LaTeX:

\documentclass{article} 

\usepackage{hyperref} 

\begin{document} 
\title{Example of how to include hyperlinks in Sweave with \texttt{xtable}} 
\author{David R. Lovell} 
\maketitle 

<<load-packages, include=FALSE>>= 
require(xtable) 
@ 

<<read-data, tidy=FALSE>>= 
hits <- read.table(textConnection(
"Count,Link,Title 
1031,http://australianbioinformatics.net/jobs,Jobs 
796,http://australianbioinformatics.net/,Home"), 
stringsAsFactors=FALSE, sep=",", header=TRUE) 
@ 

<<print-xtable, echo = FALSE, results = 'asis'>>= 
print(
    xtable(
    hits, 
    align="rrll", 
    caption="Top content on \\href{http://australianbioinformatics.net}{AustralianBioinformatics.net} in May 2014." 
    ), 
    include.rownames=FALSE 
) 
@ 

<<print-xtable-href, echo = FALSE, results = 'asis'>>= 
linkedHits <- transform(hits, href=paste("\\href{", Link, "}{", Title, "}", sep="")) 
print(
    xtable(
    subset(linkedHits, select=c(Count, href)), 
    align="rrl", 
    caption="Top content on \\href{http://australianbioinformatics.net}{AustralianBioinformatics.net} in May 2014, 
    now with added hyperlinks." 
    ), 
    include.rownames=FALSE, 
    sanitize.text.function = function(x){x} 
) 

@ 

\end{document} 

... che produce questo output PDF: enter image description here