On Thu, Jun 13, 2013 at 12:17 PM, Ista Zahn <istaz...@gmail.com> wrote: > On Thu, Jun 13, 2013 at 12:11 PM, Bert Gunter <gunter.ber...@gene.com> wrote: >> Why are you surprised? > > Because I missed the significance of "examines the environment after > the evaluation of 'expr' and makes the corresponding modifications to > 'data'" in ?within, and thought my example should be equivalent to > > mtcars <- within(mtcars, { > x <- 0 > x[gear==4] <- 1 > })
I meant, "thought my example should be equivalent to mtcars$x <- 0 mtcars$x[mtcars$gear==4] <- 1 " Thanks again, Ista > > > It has nothing to do with within() . ?"[<-" >> >>> x <- 0 >>> g <- 1:2 >>> x[g==1]<- 5 >>> x >> [1] 5 NA > > Thanks Bert. Makes me feel stupid, but I guess that's the price I pay > for enlightenment. > > Best, > Ista > >> >> -- Bert >> >> On Thu, Jun 13, 2013 at 9:00 AM, Ista Zahn <istaz...@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@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 ______________________________________________ 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.