On 26/08/2008 6:30 AM, David Epstein wrote:
Code:
options("contrasts")
$contrasts
factor ordered
"contr.treatment" "contr.poly"
I want to change the first entry ONLY, without retyping "contr.poly". How do
I do it? I have tried various possibilities and cannot get anything to work.
This doesn't really save typing, but you could do this:
conts <- options("contrasts")$contrasts
conts[1] <- "contr.poly"
options(contrasts = conts)
(One thing I wonder about: which version of R are you using? Mine
shows the names of the contrasts as "unordered" and "ordered".)
I found out that the response to options("contrasts") has class "list", but
that doesn't help me, although I think it ought to help.
Second question (metaquestion). How should I go about finding out the answer
to a question like "How does one change a single item in a list?"
Read the Introduction to R manual, in particular the bits on replacement
functions. The general idea is that you can sometimes index the target
of an assignment, as I did above. I could also have written it as
conts <- options("contrasts")
conts$contrasts[1] <- "contr.poly"
options(conts)
One might guess that
options("contrasts")[1] <- "contr.poly"
would work, but one would be wrong. There is no "options<-" replacement
function. (There might be one in some contributed package; I was just
looking in the base packages.)
Duncan Murdoch
My answer to the meta-meta-question is to post to this list. I hope that at
least that part is correct.
Thanks for any help.
David Epstein
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.