[R] Problem setting the number of digits in xtable

wphantomfr wphantomfr at gmail.com
Wed Nov 24 23:01:49 CET 2010


Thanks Brian,


You're right ! They were strings and I thought they were numerics. I just had to force the conversion and Everything is now fine.

Thanks for your help. It was really stupid from me, but I couldn't imagine that these colomns were interpreted as strings.

Sylvain
Le 24 nov. 2010 à 22:20, Brian Diggs a écrit :

> On 11/22/2010 9:16 AM, wphantomfr wrote:
>> DEar list members,
>> 
>> I am currently using Sweave with LaTeX which is great.
>> 
>> I can use xtable for formatting outp of tables but I have a problem
>> setting the number of decimals in xtables when used with dataframe.
>> 
>> I have found an example on the net ith matrix and it works.
>> 
>> For example this works :
>>>> tmp<- matrix(rnorm(9), 3, 3)
>>>> xtmp<- xtable(tmp)
>>>> digits(xtmp)<- c(0,0,3,4)
>>>> print(xtmp, include.rownames = FALSE) # row names
>> 
>> produced :
>>> % latex table generated in R 2.12.0 by xtable 1.5-6 package
>>> % Mon Nov 22 17:35:00 2010
>>> \begin{table}[ht]
>>> \begin{center}
>>> \begin{tabular}{rrr}
>>>   \hline
>>> 1&  2&  3 \\
>>>   \hline
>>> -2&  -2.158&  2.8886 \\
>>>   1&  1.330&  0.4677 \\
>>>   -0&  0.486&  -0.3319 \\
>>>    \hline
>>> \end{tabular}
>>> \end{center}
>>> \end{table}
>> 
>> 
>> 
>> But this won't work :
>>>> mydata
>>>   	TEST                t ddl                   p CONDITION
>>> 2   R1 3.01109061083632  16 0.00828552765650315        C1
>>> 3   R2 3.30476953908811  16 0.00447412002109504        C1
>>> 4   DR 2.86343993410509  16  0.0112631908739966        C1
>>> 5   R1 1.05386387510206  16    0.30760068470456        C2
>>> 6   R2 3.04997140665209  16 0.00763921045771104        C2
>>> 7   DR 2.25175987512241  16  0.0387401575011488        C2
>> 
>> but
>>>> xtable(mydata,digits=2)
>> 
>> produced
>> 
>>> % latex table generated in R 2.12.0 by xtable 1.5-6 package
>>> % Mon Nov 22 18:13:47 2010
>>> \begin{table}[ht]
>>> \begin{center}
>>> \begin{tabular}{rlllll}
>>>   \hline
>>>  &  TEST&  t&  ddl&  p&  CONDITION \\
>>>   \hline
>>> 2&  R1&  3.01109061083632&  16&  0.00828552765650315&  C1 \\
>>>   3&  R2&  3.30476953908811&  16&  0.00447412002109504&  C1 \\
>>>   4&  DR&  2.86343993410509&  16&  0.0112631908739966&  C1 \\
>>>   5&  R1&  1.05386387510206&  16&  0.30760068470456&  C2 \\
>>>   6&  R2&  3.04997140665209&  16&  0.00763921045771104&  C2 \\
>>>   7&  DR&  2.25175987512241&  16&  0.0387401575011488&  C2 \\
>>>    \hline
>>> \end{tabular}
>>> \end{center}
>>> \end{table}
>> 
>> 
>> 
>> 
>> I have also tried setting the digits with c(0,0,4,0,4,0), using also
>> the 'display' argument to specify the type of each column... noway...
>> 
>> 
>> What am I missing ?
> 
> My guess is that the data frame is not what you think it is.  In particular, I bet the t and p columns are not really numbers, but strings or factors.  Does str(mydata) show this?
> 
>> Thanks in advance
>> 
>> Sylvain Clément
> 
> -- 
> Brian S. Diggs, PhD
> Senior Research Associate, Department of Surgery
> Oregon Health & Science University



More information about the R-help mailing list