[R] function changes argument

Duncan Murdoch murdoch at stats.uwo.ca
Mon Sep 11 12:53:41 CEST 2006


On 9/11/2006 4:49 AM, Moeltner, Andreas wrote:
> Dear R-list,
> 
> the following function f changes L. I thought, assignments within
> functions are only local?

That looks like a bug, still present in R-patched and R-devel.  (I 
haven't got the latest pre-release built yet today, but I expect it's 
there, too.)  Thanks for the report.

I'll send a copy of this to the bugs list, but I won't be able to 
attempt to fix it.

Duncan Murdoch

> 
> 
> f<-function(LL)
> { for (ll in LL)
>   { ll$txt<-"changed in f"
>   }
> }
> 
> l<-list(txt="original value")
> L<-list(l)
> L[[1]]$txt 
> f(L)
> L[[1]]$txt
> 
> 
> gives (using R 2.3.1):
> 
> ...
>> L[[1]]$txt
> [1] "original value"
>> f(L)
>> L[[1]]$txt
> [1] "changed in f"
> 
> Thanks in advance
> 
> Andreas
> 
> ______________________________________________
> R-help at stat.math.ethz.ch 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.



More information about the R-help mailing list