This is exactly what I've been looking for (without success) when I was speaking about a more elegant and general solution.
I agree with your argument that labels might be misleading. Nevertheless if a user is aware what contr.sum calculates, it is practical to have an annotation. Thank you very much for the solution. Regards, Christoph Buser -------------------------------------------------------------- Christoph Buser <[EMAIL PROTECTED]> Seminar fuer Statistik, LEO C13 ETH (Federal Inst. Technology) 8092 Zurich SWITZERLAND phone: x-41-44-632-4673 fax: 632-1228 http://stat.ethz.ch/~buser/ -------------------------------------------------------------- Prof Brian Ripley writes: > One way to do this generally is to make a copy of contr.sum, rename it, > and set the dimnames appropriately. > > I think contr.treatment is misleading (it labels contrasts of two levels > by just one of them), and Christoph's labels are informative but > impractically long. But if you want to label each contrast by the level > it contrasts with the rest, > > cont <- array(0, c(lenglev, lenglev - 1), > list(levels, levels[-lenglev])) > > in a modified contr.sum will do it. E.g. > > > z <- factor(letters[1:3]) > > contr.treatment(z) > b c > a 0 0 > b 1 0 > c 0 1 > > contr.sum(z) > [,1] [,2] > a 1 0 > b 0 1 > c -1 -1 > > mycontr.sum(z) > a b > a 1 0 > b 0 1 > c -1 -1 > > > > > On Wed, 13 Jul 2005, Christoph Buser wrote: > > > Dear Ghislain > > > > I do not know a general elegant solution, but for some > > applications the following example may be helpful: > > > > ## Artificial data for demonstration: group is fixed, species is random > > dat <- data.frame(group = c(rep("A",20),rep("B",17),rep("C",24)), > > species = c(rep("sp1", 4), rep("sp2",5), rep("sp3",5), > > rep("sp4",6), rep("sp5",2), rep("sp6",5), > > rep("sp7",3), > > rep("sp8",3), rep("sp9",4), rep("sp10",6), > > rep("sp11",6), > > rep("sp12",6), rep("sp13",6)), > > area = rnorm(61)) > > > > ## You can attach a contrast at your fixed factor of interest "group" > > ## Create the contrast you like to test (in our case contr.sum for 3 > > ## levels) > > mat <- contr.sum(3) > > ## You can add the names you want to see in the output > > ## Be carefull that you give the correct names to the concerned > > ## column. Otherwise there is the big danger of misinterpretation. > > colnames(mat) <- c(": A against rest", ": B against rest") > > ## Attatch the contrast at your factor "group" > > dat[,"group"] <- C(dat[,"group"],mat) > > ## Now calculate the lme > > library(nlme) > > reg.lme <- lme(area ~ group, data = dat, random = ~ 1|species) > > summary(reg.lme) > > > > Maybe someone has a better idea how to do it generally. > > > > Hope this helps > > > > Christoph Buser > > > > -------------------------------------------------------------- > > Christoph Buser <[EMAIL PROTECTED]> > > Seminar fuer Statistik, LEO C13 > > ETH (Federal Inst. Technology) 8092 Zurich SWITZERLAND > > phone: x-41-44-632-4673 fax: 632-1228 > > http://stat.ethz.ch/~buser/ > > -------------------------------------------------------------- > > > > > > Ghislain Vieilledent writes: > > > Good morning, > > > > > > I used in R contr.sum for the contrast in a lme model: > > > > > > > options(contrasts=c("contr.sum","contr.poly")) > > > > Septo5.lme<-lme(Septo~Variete+DateSemi,Data4.Iso,random=~1|LieuDit) > > > > intervals(Septo5.lme)$fixed > > > lower est. upper > > > (Intercept) 17.0644033 23.106110 29.147816 > > > Variete1 9.5819873 17.335324 25.088661 > > > Variete2 -3.3794907 6.816101 17.011692 > > > Variete3 -0.5636915 8.452890 17.469472 > > > Variete4 -22.8923812 -10.914912 1.062558 > > > Variete5 -10.7152821 -1.865884 6.983515 > > > Variete6 0.2743390 9.492175 18.710012 > > > Variete7 -23.7943250 -15.070737 -6.347148 > > > Variete8 -21.7310554 -12.380475 -3.029895 > > > Variete9 -27.9782575 -17.480555 -6.982852 > > > DateSemi1 -5.7903419 -1.547875 2.694592 > > > DateSemi2 3.6571596 8.428417 13.199675 > > > attr(,"label") > > > [1] "Fixed effects:" > > > > > > How is it possible to obtain a return with the name of my factor's > > > levels as > > > with contr.treatment ? > > > > > > Thanks for you help. > > > > > > -- > > > Ghislain Vieilledent > > > 30, rue Bernard Ortet 31 500 TOULOUSE > > > 06 24 62 65 07 > > > > > > [[alternative HTML version deleted]] > > > > > > ______________________________________________ > > > [email protected] mailing list > > > https://stat.ethz.ch/mailman/listinfo/r-help > > > PLEASE do read the posting guide! > > > http://www.R-project.org/posting-guide.html > > > > ______________________________________________ > > [email protected] mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide! > > http://www.R-project.org/posting-guide.html > > > > -- > Brian D. Ripley, [EMAIL PROTECTED] > Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ > University of Oxford, Tel: +44 1865 272861 (self) > 1 South Parks Road, +44 1865 272866 (PA) > Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
