On 22/06/2014, 6:00 AM, Ragia Ibrahim wrote:
> Dear group 
> I have some thing like the following code...
> ##start
> my_list (global object)
> 
> function 1
> {
> list1<-mylist
> 
> function2(list1)
> function3(list1)
> function4(list1)
> }
> 
> function2(list1)
> {
> assign values via <<- to the object items
> }
> 
> function3(list1)
> {
> assign values via <<- to the object items
> }
> # end
> 
> 
> why after finishing each function the object variable is NULL..how can i keep 
> its values across functions

The reason is that <<- doesn't do what you think it does.  It is useful
in a very narrow context, but not the way you're using it.  For what
you're doing, you don't need it.  Here's a better way to get what you want:

Change function 1 to look like this:

list1 <- function2(list1)
list1 <- function3(list1)
list1 <- function4(list1)

and change functions 2, 3, 4 to not use <<-, but to return the modified
list, e.g.

function2 <- function(list1) {
 list1 <- ...
 list1
}

Duncan Murdoch

______________________________________________
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