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

	[[alternative HTML version deleted]]

