Can I control the add.to.row
command in xtable
to place an \footnote{}
in the LaTeX
table output header?
This is how far I've gotten it. (I would like to find a solution using xtable
and not `Hmisc')
require(xtable)
x <- matrix(rnorm(60), ncol = 10)
x.big <- xtable(x,label='tabbig', caption='Example of longtable')
names(x.big) <- LETTERS[1:10]
print(x.big,tabular.environment='longtable',floating=FALSE,
add.to.row = list(pos = list(seq(1,nrow(x.big), by = 2), 0, 1),
command = c("\\rowcolor[gray]{.95} ", "\\hline \\endhead ",
"\\footnote{This is the first footnote that I would like to have
in the headder next to `I'.}") ) )
then I use the output in a small latex file. Like this:
\documentclass{article}
\usepackage{longtable}
\usepackage{colortbl}
\usepackage[landscape]{geometry}
\begin{document}
I
\vspace{100 mm}
% latex table generated in R 2.15.1 by xtable 1.7-0 package
% Sun Dec 2 15:38:26 2012
\begin{longtable}{rrrrrrrrrrr}
\hline
& A & B & C & D & E & F & G & H & I & J \\
\hline \endhead \hline
1 & 0.57 & -0.21 & 1.11 & 0.15 & -0.47 & 0.77 & 0.26 & 2.08 & 0.65 & -1.62 \\
\rowcolor[gray]{.95} \footnote{This is the first footnote that I would like to have in the headder next to `I'.}2 & -0.45 & -0.06 & 0.13 & 0.20 & 0.26 & 0.48 & 0.07 & 0.45 & -0.51 & 1.26 \\
3 & -0.23 & -0.68 & 0.17 & -0.92 & -0.44 & -0.43 & -0.63 & 1.84 & 0.08 & 1.21 \\
\rowcolor[gray]{.95} 4 & -1.60 & -0.69 & -0.11 & 2.12 & -0.12 & -1.81 & -1.51 & 0.67 & 0.22 & 0.43 \\
5 & -0.26 & 0.14 & 0.86 & -0.78 & -2.04 & 1.17 & -1.48 & -0.38 & 0.80 & 1.49 \\
\rowcolor[gray]{.95} 6 & -0.53 & -0.43 & -0.84 & 0.06 & -0.87 & 1.13 & -0.56 & 0.30 & -0.96 & 1.75 \\
\hline
\hline
\caption{'Example of longtable'}
\label{tabbig}
\end{longtable}
\end{document}
This produces this table,
Just put a hardcoded vertical skip at the bottom of the caption and then write the footnote yourself (use \footnotesize for the size). You also have to manage the symbols or number yourself with \footnotemark . Simple, but not very attractive, and the footnote does not appear at the bottom of the page.
Click the References tab. Don't click Insert Footnote, as you did before. Instead, click the Footnotes group's dialog launcher. In the resulting dialog, choose Below text from the Footnotes dropdown (Figure D), and click Insert.
You can insert the footnote marker\footnotemark{} using the \verb|\footnotemark| command and later use the \verb|\footnotetext| command to typeset the footnote text by writing \verb|\footnotetext{Text of second footnote.} | \footnotetext{Text of second footnote.}.
I think you can't manipulate the header using the add.to.row argument.
But why not to sanitize?
Here my solution : The idea is to put a tag in the header (footnote here) and to change it using sanitize option.
x <- matrix(rnorm(60), ncol = 10)
x.big <- xtable(x,label='tabbig', caption='Example of longtable')
names(x.big) <- LETTERS[1:10]
names(x.big)[9] <- paste('I','footnote') # I put the tag on I letter
print(x.big,tabular.environment='longtable',floating=FALSE,
sanitize.text.function=function(str)gsub("footnote","\\footnote{my tricky footnote !!}",str,fixed=TRUE))
You can easily extend the solution to many footnots by using many tags.
You can easily use thes ame trick for multiple notes, like this :
names(x.big)[1] <- paste('A','footnote1') # I put the tag on A letter
names(x.big)[9] <- paste('I','footnote2') # I put the tag on I letter
print(x.big,floating=FALSE,
sanitize.text.function=function(str){
str <- gsub("footnote1","\\footnote{my tricky footnote 1 !!}",str,fixed=TRUE)
str <- gsub("footnote2","\\footnote{my tricky footnote 2 !!}",str,fixed=TRUE)
}
)
The idea is to assign the same string after the regular expression substitution.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With