pass by reference
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.