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

From: Sander Oom <slist_at_oomvanlieshout.net>
Date: Mon 16 May 2005 - 23:35:51 EST

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@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@oomvanlieshout.net
>>>Web www.oomvanlieshout.net/sander
>>>
>>>______________________________________________
>>>R-help@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@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@oomvanlieshout.net
Web     www.oomvanlieshout.net/sander

______________________________________________
R-help@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
Received on Mon May 16 23:43:49 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:31:46 EST