On 9/6/2011 4:01 AM, eldor ado wrote:
I have a related question:
dataframe df contains values like
df
.. "\\textbf{ 0.644 }" ..
and the line
print( xtable(df , sanitize.text.function = function(x){x}))
sanitize.text.function is an argument of print.xtable, not xtable. Try
print( xtable(df) , sanitize.text.function = function(x){x})
or even shorter
print( xtable(df) , sanitize.text.function = identity)
converts them to
..& $\backslash$textbf\{ 0.644 \}& ..
escaping both double backslashes and brackes.
maybe somebody here knows how to prevent xtable from escaping the code?
best regards,
lukas kohl
On Wed, Jun 1, 2011 at 8:47 PM, Marc Schwartz<marc_schwa...@me.com> wrote:
On Jun 1, 2011, at 1:33 PM, Walmes Zeviani wrote:
Hello list,
I'm doing a table with scores and I want include colors to represent status
of an individual. I'm using sweave<<results=tex>>= and xtable but I can't
get a result I want. My attemps are
#-----------------------------------------------------------------------------
# code R
da<- data.frame(id=letters[1:5], score=1:5*2)
col<- function(x){
ifelse(x>7,
paste("\textcolor{blue}{", formatC(x, dig=2, format="f"), "}"),
paste("\textcolor{red}{", formatC(x, dig=2, format="f"), "}"))
}
da$score.string<- col(da$score)
require(xtable)
xtable(da[,c("id","score.string")])
#-----------------------------------------------------------------------------
actual result
#-----------------------------------------------------------------------------
\begin{tabular}{rll}
\hline
& id& score.string \\
\hline
1& a& extcolor\{red\}\{ 2.00 \} \\
2& b& extcolor\{red\}\{ 4.00 \} \\
3& c& extcolor\{red\}\{ 6.00 \} \\
4& d& extcolor\{blue\}\{ 8.00 \} \\
5& e& extcolor\{blue\}\{ 10.00 \} \\
\hline
\end{tabular}
#-----------------------------------------------------------------------------
desired result (lines omited to save space)
#-----------------------------------------------------------------------------
1& a& \textcolor{red}{ 2.00 } \\
2& b& \textcolor{red}{ 4.00} \\
#-----------------------------------------------------------------------------
Any contribution will be useful. Thanks.
Walmes.
When the '\t' is being cat()'d to the TeX file (or console) by print.xtable(),
it is being interpreted as a tab character. You need to escape it with
additional backslashes and then adjust the sanitize.text.function in
print.xtable() so that it does not touch the backslashes:
da<- data.frame(id=letters[1:5], score=1:5*2)
col<- function(x){
ifelse(x>7,
paste("\\textcolor{blue}{", formatC(x, dig=2, format="f"), "}"),
paste("\\textcolor{red}{", formatC(x, dig=2, format="f"), "}"))
}
da$score.string<- col(da$score)
da
id score score.string
1 a 2 \\textcolor{red}{ 2.00 }
2 b 4 \\textcolor{red}{ 4.00 }
3 c 6 \\textcolor{red}{ 6.00 }
4 d 8 \\textcolor{blue}{ 8.00 }
5 e 10 \\textcolor{blue}{ 10.00 }
require(xtable)
print(xtable(da[,c("id","score.string")]), sanitize.text.function =
function(x){x})
That will give you:
% latex table generated in R 2.13.0 by xtable 1.5-6 package
% Wed Jun 1 13:44:54 2011
\begin{table}[ht]
\begin{center}
\begin{tabular}{rll}
\hline
& id& score.string \\
\hline
1& a& \textcolor{red}{ 2.00 } \\
2& b& \textcolor{red}{ 4.00 } \\
3& c& \textcolor{red}{ 6.00 } \\
4& d& \textcolor{blue}{ 8.00 } \\
5& e& \textcolor{blue}{ 10.00 } \\
\hline
\end{tabular}
\end{center}
\end{table}
HTH,
Marc Schwartz
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
--
Brian S. Diggs, PhD
Senior Research Associate, Department of Surgery
Oregon Health & Science University
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.