[R] Conflict between xtable and Hmisc when using Sweave?

Sander Oom slist at oomvanlieshout.net
Mon May 16 15:35:51 CEST 2005


Hi Andy and Gabor,

Thanks for your help so far! I am discovering another R dimension.

Trying to put my head around all this....the conflict actually exposes 
itself when calling summarize(Hmisc). Summarize(Hmisc) calls label 
internally, so I can not call it explicitly. Simply calling 
label(xtable) explicitly will not solve the problem with summarize(Hmisc).

Thus, I should use namespaces as Andy is suggesting. Now I just need to 
know how I 'add namespace' to a library? Does 'loadNamespace' have 
something to do with it?

Thanks very much for your help!

Sander.


## From Venables and Ripley (2002) p.165.
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)
## to show the effects of re-ordering terms contrast the two fits
tmpAov <- aov(yield ~ block + N * P + K, npk)
tmpTable <- xtable(tmpAov , caption="Test export of ANOVA table.",
   label="tab:Anova")
print.xtable(tmpTable, type="latex", floating=TRUE,
   table.placement="h", caption.placement="top",
   latex.environments=c("center"))

Alternatively, using namespace for xtable:

tmpTable <- xtable(tmpAov , caption="Test export of ANOVA table.")
xtable:::label(tmpTable) <- paste("tab:Anova")
print.xtable(tmpTable, type="latex", floating=TRUE,
   table.placement="ht", caption.placement="top",
   latex.environments=c("center"))



Gabor Grothendieck wrote:
> Even without a namespace one could explicitly reference the label
> in xtable via:
> 
> xtable.label <- get("label", "package:xtable")
> 
> On 5/16/05, Liaw, Andy <andy_liaw at merck.com> wrote:
>>One possible solution without renaming the functions is to add namespace to
>>either xtable or Hmisc.  Given the size of Hmisc, it probably would be much
>>easier to do that with xtable.
>>
>>With namespace in xtable, you can do xtable:::label() to refer to the
>>label() in xtable specifically.
>>
>>Andy
>>
>>>From: Of Sander Oom
>>>
>>>Dear David,
>>>
>>>I would like to use summarize(Hmisc) and print.xtable(xtable) in a
>>>single Sweave document, but a conflict with the 'label' function
>>>prohibits this at the moment!
>>>
>>>Would you be able to correct the conflicting code? I will gladly test
>>>the new package!
>>>
>>>I have tried latex(Hmisc) to export the anova table, but
>>>results are not
>>>promising! I prefer xtable!!
>>>
>>>Thanks,
>>>
>>>Sander.
>>>
>>>Frank E Harrell Jr wrote:
>>>>Sander Oom wrote:
>>>>>Dear Frank,
>>>>>
>>>>>I have a Sweave document in which I export anova (aov)
>>>tables to Latex
>>>>>and calculate some summary statistics with summarize{Hmisc} for a
>>>>>graph (as in the example below).
>>>>>
>>>>>I currently use the following code for the aov tables:
>>>>><<results=tex>>=
>>>>>  tmp <- datGrassHC[datGrassHC$Loc > 0 & datGrassHC$Loc < 9 ,]
>>>>>  tmpAov <- aov(Height~Geology*Altitude*Origin*BinInOut , data=tmp)
>>>>>  tmpTable <- xtable (tmpAov ,
>>>>>    caption="ANOVA table for vegetation height.",
>>>>>    label="tab:AnovaHeight"
>>>>>    )
>>>>>  print.xtable(tmpTable, type="latex", floating=TRUE,
>>>>>    table.placement="ht", caption.placement="top",
>>>>>    latex.environments=c("center"))
>>>>>    )
>>>>>@
>>>>>
>>>>>I used xtables, because it has a working aov example. I
>>>would be happy
>>>>>to use an alternative if I knew how! Would you have sample code to
>>>>>illustrate how to export an aov table to Latex using latex{Hmisc}.
>>>>>
>>>>>Thanks very much for your help,
>>>>>
>>>>>Sander.
>>>>>
>>>>>Frank E Harrell Jr wrote:
>>>>>
>>>>>>Sander Oom wrote:
>>>>>>
>>>>>>>Dear R users,
>>>>>>>
>>>>>>>The Sweave code below runs fine, as it is. However, an
>>>error occurs
>>>>>>>when the line 'library(xtable)' is uncommented:
>>>>>>>Error:  chunk 1
>>>>>>>Error in "label<-"(`*tmp*`, value = "month") :
>>>>>>>        no applicable method for "label<-"
>>>>>>>
>>>>>>>Is anybody aware of this and knows a workaround?
>>>>>>>
>>>>>>>Thanks,
>>>>>>>
>>>>>>>Sander.
>>>>>>>
>>>>>>>*******************
>>>>>>>
>>>>>>>\documentclass[a4paper]{article}
>>>>>>>\title{Sweave Test for summarize}
>>>>>>>\author{Sander Oom}
>>>>>>>
>>>>>>>\usepackage{a4wide}
>>>>>>>
>>>>>>>\begin{document}
>>>>>>>
>>>>>>>\maketitle
>>>>>>>
>>>>>>>\begin{figure}[ht]
>>>>>>>\begin{center}
>>>>>>><<fig=TRUE,echo=FALSE>>=
>>>>>>>  # library(xtable)
>>>>>>>  library(Hmisc)
>>>>>>>  set.seed(111)
>>>>>>>  dfr <- expand.grid(month=1:12, year=c(1997,1998), reps=1:100)
>>>>>>>  month <- dfr$month
>>>>>>>  year <- dfr$year
>>>>>>>  y <- abs(month-6.5) + 2*runif(length(month)) + year-1997
>>>>>>>  s <- summarize(y, llist(month,year), smedian.hilow,
>>>conf.int=.5)
>>>>>>>  print(xYplot(Cbind(y,Lower,Upper) ~ month, groups=year, data=s,
>>>>>>>        keys='lines', method='alt', type='b'))
>>>>>>>@
>>>>>>>\end{center}
>>>>>>>\end{figure}
>>>>>>>
>>>>>>>\end{document}
>>>>>>>
>>>>>>>************************
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> > version
>>>>>>>         _
>>>>>>>platform i686-pc-linux-gnu
>>>>>>>arch     i686
>>>>>>>os       linux-gnu
>>>>>>>system   i686, linux-gnu
>>>>>>>status
>>>>>>>major    2
>>>>>>>minor    1.0
>>>>>>>year     2005
>>>>>>>month    04
>>>>>>>day      18
>>>>>>>language R
>>>>>>>
>>>>>>>
>>>>>>I feel this is an xtable problem because Hmisc has being
>>>using label
>>>>>>and label<- since 1991.
>>>>>>
>>>>>>Frank
>>>>>>
>>>>There are ways to make functions from one area override those from
>>>>another, but the real solution is to ask the xtable author
>>>not to have
>>>>functions that conflict with the (older) Hmisc package.  -Frank
>>>>
>>>--
>>>--------------------------------------------
>>>Dr Sander P. Oom
>>>Animal, Plant and Environmental Sciences,
>>>University of the Witwatersrand
>>>Private Bag 3, Wits 2050, South Africa
>>>Tel (work)      +27 (0)11 717 64 04
>>>Tel (home)      +27 (0)18 297 44 51
>>>Fax             +27 (0)18 299 24 64
>>>Email   sander at oomvanlieshout.net
>>>Web     www.oomvanlieshout.net/sander
>>>
>>>______________________________________________
>>>R-help at stat.math.ethz.ch mailing list
>>>https://stat.ethz.ch/mailman/listinfo/r-help
>>>PLEASE do read the posting guide!
>>>http://www.R-project.org/posting-guide.html
>>>
>>>
>>>
>>______________________________________________
>>R-help at stat.math.ethz.ch mailing list
>>https://stat.ethz.ch/mailman/listinfo/r-help
>>PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>>
> 

-- 
--------------------------------------------
Dr Sander P. Oom
Animal, Plant and Environmental Sciences,
University of the Witwatersrand
Private Bag 3, Wits 2050, South Africa
Tel (work)      +27 (0)11 717 64 04
Tel (home)      +27 (0)18 297 44 51
Fax             +27 (0)18 299 24 64
Email   sander at oomvanlieshout.net
Web     www.oomvanlieshout.net/sander




More information about the R-help mailing list