[R] pass by reference
R. Michael Weylandt <michael.weylandt@gmail.com>
michael.weylandt at gmail.com
Tue Aug 14 03:32:21 CEST 2012
On Aug 13, 2012, at 9:23 PM, Sachinthaka Abeywardana <sachin.abeywardana at gmail.com> wrote:
> Hi Jim, R,
>
> What you just showed me simply prints out the 2nd column. If you inspect
> your original data, it still just has 1 column. So its still passing by
> value.
Yes -- that's entirely by design. Look into functional programming and meditate on the difference between functions and subroutines.
Cheers,
Michael
>
> Thanks,
> Sachin
>
> On Tue, Aug 14, 2012 at 11:19 AM, jim holtman <jholtman at gmail.com> wrote:
>
>> You have to return the value of 'data' from the function. Functions
>> do not have "side effects".
>>
>>> data<-data.frame(col1=c(1,2,3,4,5))
>>>
>>> getcol2<-function(data){
>> + data$col2[data$col1<=2]="L"
>> + data # return value
>> + }
>>>
>>> getcol2(data)
>> col1 col2
>> 1 1 L
>> 2 2 L
>> 3 3 <NA>
>> 4 4 <NA>
>> 5 5 <NA>
>>>
>>
>>
>> On Mon, Aug 13, 2012 at 9:08 PM, Sachinthaka Abeywardana
>> <sachin.abeywardana at gmail.com> wrote:
>>> Hi all,
>>>
>>> I want to do the following:
>>>
>>> data<-data.frame(col1=c(1,2,3,4,5))
>>>
>>> getcol2<-function(data){
>>> data$col2[data$col1<=2]="L"
>>> }
>>>
>>> getcol2(data)
>>>
>>> Unfortunately in the above col2 does not appear in the final data. So how
>>> would you pass this by reference such that you would get it back?
>>>
>>> Thanks,
>>> Sachin
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> 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.
>>
>>
>>
>> --
>> 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.
>>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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