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.abeyward...@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 <jholt...@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.abeyward...@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@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.

______________________________________________
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