Since you are generating the table from R, I'll assume that you are using R's xtable package to generate the table. This package has some deficiencies, but it is still quite usable.
Here's a sample R session showing how to use the package.
R-session
data(tli)
## Demonstrate aov
## Taken from help(aov) in R 1.1.1
## From Venables and Ripley (1997) p.210.
N <- c(0,1,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0)
P <- c(1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0)
K <- c(1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,0,1,0)
yield <- c(49.5,62.8,46.8,57.0,59.8,58.5,55.5,56.0,62.8,55.8,69.5,55.0,
+ 62.0,48.8,45.5,44.2,52.0,51.5,49.8,48.8,57.2,59.0,53.2,56.0)
npk <- data.frame(block=gl(6,4), N=factor(N), P=factor(P), K=factor(K), yield=yield)
npk.aov <- aov(yield ~ block + N*P*K, npk)
op <- options(contrasts=c("contr.helmert", "contr.treatment"))
npk.aovE <- aov(yield ~ N*P*K + Error(block), npk)
options(op)
Using xtable to produce the table
## Standard xtable use
print(xtable(summary(npk.aov)))
% latex table generated in R 2.12.2 by xtable 1.5-6 package
% Fri Aug 12 16:00:48 2011
\begin{table}[ht]
\begin{center}
\begin{tabular}{lrrrrr}
\hline
& Df & Sum Sq & Mean Sq & F value & Pr($>$F) \\
\hline
block & 5 & 343.29 & 68.66 & 4.45 & 0.0159 \\
N & 1 & 189.28 & 189.28 & 12.26 & 0.0044 \\
P & 1 & 8.40 & 8.40 & 0.54 & 0.4749 \\
K & 1 & 95.20 & 95.20 & 6.17 & 0.0288 \\
N:P & 1 & 21.28 & 21.28 & 1.38 & 0.2632 \\
N:K & 1 & 33.13 & 33.13 & 2.15 & 0.1686 \\
P:K & 1 & 0.48 & 0.48 & 0.03 & 0.8628 \\
Residuals & 12 & 185.29 & 15.44 & & \\
\hline
\end{tabular}
\end{center}
\end{table}
The output of this command is a fragment of LaTeX code, not a complete working document. It is designed to be cut and pasted into an existing LaTeX document. This is why you got the error that you got. Minimally, the document should look like the following:
\documentclass{article}
\begin{document}
...
\end{document}
And you would insert your table code in the ... spot. You then compile this with pdflatex.
This produces the following table:

Problems with the standard xtable output
There are a number of problems with the standard xtable output.
- It generates a floating
{table} environment
- It encloses the
tabular in a {center} environment
- It uses standard
\hline as a separator
Although the floating table environment is useful when you are including the table into a larger LaTeX document, if you are generating a single table, it's not necessary. Furthermore, as a consequence of the floating environment, xtable encloses the table in a {center} environment, which leaves too much extra space between the table and other elements of your document. Finally, it uses \hline for the table rules, which leads to a cramped looking table.
Most of these problems are solvable, although with some loss of auto-generation.
The first two problems are connected. The print.xtable function has two arguments, one to say whether the table should be floating or not, and another to define the environment to wrap the table in. So we can modify our initial command to print the table in the following way to suppress both of these:
## Revised R print command
print(xtable(summary(npk.aov)),floating="FALSE",latex.environments=NULL)
This produces the following LaTeX code:
% latex table generated in R 2.12.2 by xtable 1.5-6 package
% Fri Aug 12 16:29:29 2011
\begin{tabular}{lrrrrr}
\hline
& Df & Sum Sq & Mean Sq & F value & Pr($>$F) \\
\hline
block & 5 & 343.29 & 68.66 & 4.45 & 0.0159 \\
N & 1 & 189.28 & 189.28 & 12.26 & 0.0044 \\
P & 1 & 8.40 & 8.40 & 0.54 & 0.4749 \\
K & 1 & 95.20 & 95.20 & 6.17 & 0.0288 \\
N:P & 1 & 21.28 & 21.28 & 1.38 & 0.2632 \\
N:K & 1 & 33.13 & 33.13 & 2.15 & 0.1686 \\
P:K & 1 & 0.48 & 0.48 & 0.03 & 0.8628 \\
Residuals & 12 & 185.29 & 15.44 & & \\
\hline
\end{tabular}
If you have need for the table to float, then you should eliminate the floating="FALSE" argument from the command, but leave the latex.environments=NULL.
However, this still leaves us with the cramped looking table.
Using booktabs to produce the table
The gold standard for high quality tables is the booktabs package, so the main problem to be solved is to get xtable to play nicely with booktabs. The following is adapted from Using the booktabs package with Sweave and xtable.
## Revised print command using booktabs and xtable
xsum <- xtable(summary(npk.aov))
print(xsum,
+ floating=F,
+ hline.after=NULL,
+ add.to.row=list(pos=list(-1,0, nrow(xsum)),
+ command=c(
+ '\\toprule\n',
+ '\\midrule\n',
+ '\\bottomrule\n')))
The output of this command is:
% latex table generated in R 2.12.2 by xtable 1.5-6 package
% Fri Aug 12 16:42:42 2011
\begin{tabular}{lrrrrr}
\toprule
& Df & Sum Sq & Mean Sq & F value & Pr($>$F) \\
\midrule
block & 5 & 343.29 & 68.66 & 4.45 & 0.0159 \\
N & 1 & 189.28 & 189.28 & 12.26 & 0.0044 \\
P & 1 & 8.40 & 8.40 & 0.54 & 0.4749 \\
K & 1 & 95.20 & 95.20 & 6.17 & 0.0288 \\
N:P & 1 & 21.28 & 21.28 & 1.38 & 0.2632 \\
N:K & 1 & 33.13 & 33.13 & 2.15 & 0.1686 \\
P:K & 1 & 0.48 & 0.48 & 0.03 & 0.8628 \\
Residuals & 12 & 185.29 & 15.44 & & \\
\bottomrule
\end{tabular}
This produces the following, much nicer table: (you need to add \usepackage{booktabs} to the preamble of your LaTeX document.)

You can automate this in R by creating your own print function to save some typing:
## Define an R function to use booktabs
print.xtable.booktabs <- function(x){
print(xtable(x),
floating=F,
hline.after=NULL,
add.to.row=list(pos=list(-1,0, nrow(x)),
command=c(
'\\toprule\n',
'\\midrule\n',
'\\bottomrule\n')))
}
With this function you can now just enter:
print.xtable.booktabs(xsum)
to get the same output. If you want the table to float, (because you are including it in a larger LaTeX document, the you should eliminate the floating=F argument, and add latex.environments=NULL). In your LaTeX source, you will need to manually add \centering right after \begin{table} to center the table.
LaTeXenvironment so it won't be recognized bypdftex. Are you sure you want to use Plain TeX? – Gonzalo Medina Aug 12 '11 at 18:26pdflatex, you need to add\documentclass{article}\begin{document}just before\begin{table}, and\end{document}right after\end{table}. – Gonzalo Medina Aug 12 '11 at 18:42centerstill adds some vertical white space which will change the distance to the surrounding text (if any), doesn't it? – Martin Scharrer♦ Aug 12 '11 at 19:19xtablepackage. It's overridable, but there's no good way to automatically replace thecenterenvironment with\centering. – Alan Munn Aug 12 '11 at 19:30