[R] A question regarding R scoping
Duncan Murdoch
murdoch at stats.uwo.ca
Thu Aug 6 22:19:07 CEST 2009
On 8/6/2009 4:11 PM, Ivo Shterev wrote:
> Hi,
>
> The intention is that after executing f2, the value of i to become 1.
>
> f1 = function(i){i = 1}
>
> f2 = function(n){ i = length(n)
> f1(i)
> print(i)}
>
> i.e. f2 should print 1, not length(n).
>
> ivo
>
>
> --- On Thu, 8/6/09, Steve Lianoglou <mailinglist.honeypot at gmail.com> wrote:
>
>> From: Steve Lianoglou <mailinglist.honeypot at gmail.com>
>> Subject: Re: [R] A question regarding R scoping
>> To: "Ivo Shterev" <idc318 at yahoo.com>
>> Cc: r-help at r-project.org
>> Date: Thursday, August 6, 2009, 3:07 AM
>> Hi,
>>
>> On Aug 5, 2009, at 5:55 PM, Ivo Shterev wrote:
>>
>> > I have a question related to scoping. Suppose we have
>> 2 functions:
>> >
>> > f1 = function(i){i = 1}
>> >
>> > f2 = function(n){
>> > i = length(n)
>> > f1(i)
>> > }
>> >
>> > In other words, I would like i=1 regardless of n. Is
>> this possible without having f1 in the body of f2? Thanks in
>> advance!
It is possible by messing around with Sys.frame(), but a really bad
idea. There are two variables named i: one local to f1, and another
local to f2. Since f2 has no lexical relation to f1, things happening
locally there should not affect f1.
Duncan Murdoch
>>
>> Uhm ... what? You want i = 1 where, exactly? You want to
>> call to f1(i) to set i to 1 in f2?
>>
>> Sorry, I don't really follow. Can you be a bit more
>> explicit?
>>
>> -steve
>>
>> --
>> Steve Lianoglou
>> Graduate Student: Computational Systems Biology
>> | Memorial Sloan-Kettering Cancer Center
>> | Weill Medical College of Cornell University
>> Contact Info: http://cbio.mskcc.org/~lianos/contact
>>
>>
>
>
>
>
> ______________________________________________
> 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.
More information about the R-help
mailing list