puzzling behavior of within
Why are you surprised? It has nothing to do with within() . ?"[<-"
x <- 0 g <- 1:2 x[g==1]<- 5 x
[1] 5 NA -- Bert
On Thu, Jun 13, 2013 at 9:00 AM, Ista Zahn <istazahn at gmail.com> wrote:
Hi all,
In answering a question yesterday about avoiding repeatedly typing the
name of a data.frame when making modifications to it I discovered the
following unexpected behavior of within:
mtcars <- within(mtcars, {
x <- 0
x[gear==4] <- 1
})
generates a column named x in mtcars equal to 1 if gear equals 4, and
NA otherwise. What happend to my zeros? I thought maybe you just can't
modify an object more than once, but that is not true:
mtcars <- within(mtcars, {
x <- 0
x[gear==4] <- 1
x[gear==3] <- 2
})
returns a data.frame in with the x column is 1 if gear is 4, 2 if gear
is 3, and NA otherwise. What is going on here?
Surprised by these results I tried a few other things, and found
another surprising behavior:
mtcars <- within(mtcars, {
x <- 0
x[1] <- 1
})
generates a column named x in mtcars equal to 1. But I thought I said
only change the first value to one! What happend?
I've been reading and re-reading the documentation, but I can't see
anything that explains these results.
Thanks for any insight,
Ista
______________________________________________ R-help at 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.
Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm