Go back and reread the section about the scoping of variables and that
functions do not have side effects; they only return values.  You are
changinga "local" copy of df1 within the function which is returning
the changed values to df3.

On Wed, Jul 11, 2012 at 7:36 PM, Charles Stangor
<cstan...@charlesstangor.com> wrote:
> Why does this sapply code change df3 but not df1?
>
> Thanks
>
> df1 <- read.table(text="
> cola colb colc cold cole
> 1    NA    5    9   NA   17
> 2    NA    6   NA   14   NA
> 3     3    NA   11   15   19
> 4     4    8   12   NA   20
> ", header=TRUE)
>
> df2 <-df1*2
> df1
> df2
>
> df3 <-sapply(names(df1),function(x) {df1[[x]]<- df2[[x]]})
> df1
> df3
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.



-- 
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.

______________________________________________
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.

Reply via email to