Message-ID: <CAAxdm-7w2Bku2e0wVZ1W=ndEd0=WuaOV0y60eHuLopuQm-W9sg@mail.gmail.com>
Date: 2012-08-14T01:25:38Z
From: jim holtman
Subject: pass by reference
In-Reply-To: <CAGuusR_dcJPQP=Q_qy+Rv3LCAuoeWFFz0bZb=QTQU_ACj4VVkw@mail.gmail.com>
The assign the value back to the object:
> data<-data.frame(col1=c(1,2,3,4,5))
>
> getcol2<-function(data){
+ data$col2[data$col1<=2]="L"
+ data # return value
+ }
>
> data <- getcol2(data) # save the return value
> 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: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.
>
> 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.
>
>
--
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.