Skip to content

Sweave and R output: possible to suppress "Schunk" tags in *.tex file output?

4 messages · Waichler, Scott R, Friedrich Leisch, Jason Turner

#
Hello,

I would like to fill the rows of a Latex tabular environment with output from
R, as in

\begin{table}
  \caption{Table caption.} 
  \label{tab:events}
  \begin{tabular}{c r r r r r}
  \hline

<<echo=false,results=tex>>=
fill.my.table.rows()
@

  \end{tabular}
\end{table}

Sweave produces the output inside \begin{Schunk} and \end{Schunk} commands,
which latex doesn't tolerate within a table.  I would prefer to avoid writing all of
the Latex table code from R.  Is my only other option to produce a separate
text file, e.g. under Sweave with results=hide, then use \input{} on the file?

Thanks,
Scott Waichler
Pacific Northwest National Laboratory
scott.waichler _at_ pnl.gov
2 days later
#
> Hello,
  > I would like to fill the rows of a Latex tabular environment with output from
  > R, as in

  > \begin{table}
  >   \caption{Table caption.} 
  >   \label{tab:events}
  >   \begin{tabular}{c r r r r r}
  >   \hline

  > <<echo=false,results=tex>>=
  > fill.my.table.rows()
  > @

  >   \end{tabular}
  > \end{table}

  > Sweave produces the output inside \begin{Schunk} and \end{Schunk} commands,
  > which latex doesn't tolerate within a table.  I would prefer to avoid writing all of
  > the Latex table code from R.  Is my only other option to produce a separate
  > text file, e.g. under Sweave with results=hide, then use \input{} on the file?

results=tex will do what you want, i.e., produce no Soutput and Schunk
environments. you may also want to look at package xtable.

best,
1 day later
#
> Hello,
  > I would like to fill the rows of a Latex tabular environment with output from
  > R, as in

  > \begin{table}
  >   \caption{Table caption.} 
  >   \label{tab:events}
  >   \begin{tabular}{c r r r r r}
  >   \hline

  > <<echo=false,results=tex>>=
  > fill.my.table.rows()
  > @

  >   \end{tabular}
  > \end{table}

  > Sweave produces the output inside \begin{Schunk} and \end{Schunk} commands,
  > which latex doesn't tolerate within a table.  I would prefer to avoid writing all of
  > the Latex table code from R.  Is my only other option to produce a separate
  > text file, e.g. under Sweave with results=hide, then use \input{}
  > on the file?

Oops, that's a bug in Sweave ... the Schunk shouldn't be there in that
case. I will fix it for 1.9.0.

Best,
#
Friedrich.Leisch at ci.tuwien.ac.at wrote:
Just to add, the function latex() in the Hmisc package is also quite good.

Cheers

Jason