[R] Problem using xtable on an array

Peter Dunn dunn at usq.edu.au
Thu Sep 13 06:10:54 CEST 2007


Hi all

I know about producing a minimal example to show my problem.  But I'm
having trouble producing a minimal example that displays this
behaviour, so please bear with me to begin with.


Observe:  I create an array called model.mat.  Some details on this:

> str(model.mat)
 num [1:18, 1:4] -0.170 -0.304 -2.617  2.025 -1.610 ...
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:18] "Amount: CP for VF" "Amount: CP for F" "Amount: CP for 
M" "Amount: RD for VF" ...
  ..$ : chr [1:4] "beta_0" "P-value" "beta_1" "P-value"


It contains the following:

> model.mat[1:2,]
                      beta_0   P-value    beta_1      P-value
Amount: CP for VF -0.1702877 0.7716153 0.5148616 2.020602e-03
Amount: CP for F  -0.3042522 0.1966133 0.8795982 6.058299e-12



That's fine.  Now to produce a LaTeX table using xtable,
I get:

> xtable(model.mat[1:2,])
<snip>
  Amount: CP for VF & $-$0.17 & 0.77 & 0.51 & 0.77 \\
  Amount: CP for F & $-$0.30 & 0.20 & 0.88 & 0.20 \\
<snip>

That is, the final column does *not* correspond to the final
column of model.mat itself.  It is actually column 2 repeated.

What's going on?  If I try repeating on a minimal type example,
xtable works as expected:


> fred <- array( seq(1,18*4), dim=c(18,4))
> fred[1:2, ]
     [,1] [,2] [,3] [,4]
[1,]    1   19   37   55
[2,]    2   20   38   56
> xtable(fred[1:2, ])
% latex table generated in R 2.5.0 by xtable 1.4-6 package
% Thu Sep 13 14:09:46 2007
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrrrr}
  \hline
 & 1 & 2 & 3 & 4 \\
  \hline
1 &   1 &  19 &  37 &  55 \\
  2 &   2 &  20 &  38 &  56 \\
   \hline
\end{tabular}
\end{center}
\end{table}


So it is not a generic problem. But what could it be?  I can't decide
where to look, so find a solution or produce a minimal example to display
this behaviour.  I actually use this construct with xtable a lot, so
it disturbs me to find this error... which is probably is something
I am doing.



The problem exists for a smaller subsets of this array also; let's take
columns 2, 3 and 4 only:

> model.mat[1:2,2:4]
                    P-value    beta_1      P-value
Amount: CP for VF 0.7716153 0.5148616 2.020602e-03
Amount: CP for F  0.1966133 0.8795982 6.058299e-12
> xtable(model.mat[1:2,2:4])
% latex table generated in R 2.5.0 by xtable 1.4-6 package
% Thu Sep 13 14:04:40 2007
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrrr}
  \hline
 & P-value & beta\_1 & P-value \\
  \hline
Amount: CP for VF & 0.77 & 0.51 & 0.77 \\
  Amount: CP for F & 0.20 & 0.88 & 0.20 \\
   \hline
\end{tabular}
\end{center}
\end{table}


Is it a problem with my particular array  model.mat  or something
I am doing wrong/silly?  I don't know where to start.

Thanks all, as always.

P.

> sessionInfo()
R version 2.5.0 (2007-04-23)
i486-pc-linux-gnu

locale:
LC_CTYPE=en_AU.UTF-8;LC_NUMERIC=C;LC_TIME=en_AU.UTF-8;LC_COLLATE=en_AU.UTF-8;LC_MONETARY=en_AU.UTF-8;LC_MESSAGES=en_AU.UTF-8;LC_PAPER=en_AU.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_AU.UTF-8;LC_IDENTIFICATION=C

attached base packages:
[1] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"
[7] "base"

other attached packages:
    car  xtable statmod
"1.2-1" "1.4-6" "1.3.0"



-- 
Dr Peter Dunn  |  dunn <at> usq.edu.au
Faculty of Sciences, USQ; http://www.sci.usq.edu.au/staff/dunn
Aust. Centre for Sustainable Catchments: www.usq.edu.au/acsc

This email (including any attached files) is confidential an...{{dropped}}



More information about the R-help mailing list