I am trying to return a zoo object from a function in R.  If I return the zoo object using return from function f e.g. return(zsum), and feed into a variable 
   Ret <- lapply(df, f) #, Ret contains a list, not a zoo object.
What I would like to do is run function f repeatedly, and process (plot/save to file/aggregate) the zoo and other objects created by each function call outside the function.  
Example:
zoo object within the loop:
 2014-05-30 2014-06-09 2014-06-11 2014-07-17 2014-07-18 2014-07-21 2014-07-24 
      0.61       0.53       0.00       0.57       0.65       0.70       0.92 
2014-07-28 2014-07-31 2014-08-07 2014-08-08 2014-08-11 2014-08-13 2014-08-18 
     1.93       2.11       2.68       2.77       2.90       3.04       4.34 
2014-08-21 2014-08-22 2014-08-25 2014-08-26 2014-08-27 2014-08-28 2014-08-29 
    4.55       4.88       5.26       5.38       5.49       5.58       5.66 
2014-09-02 2014-09-04 
     5.77       5.83      
  [1] "zoo"    
List returned from function:
Ret
$`Medivir AB`
2014-05-30 2014-06-09 2014-06-11 2014-07-17 2014-07-18 2014-07-21 2014-07-24 
  0.61       0.53       0.00       0.57       0.65       0.70       0.92 
 2014-07-28 2014-07-31 2014-08-07 2014-08-08 2014-08-11 2014-08-13 2014-08-18 
   1.93       2.11       2.68       2.77       2.90       3.04       4.34 
 2014-08-21 2014-08-22 2014-08-25 2014-08-26 2014-08-27 2014-08-28 2014-08-29 
   4.55       4.88       5.26       5.38       5.49       5.58       5.66 
2014-09-02 2014-09-04 
   5.77       5.83   
 class(Ret)
[1] "list"
I have tried to create a list containing a zoo object (presumably analogous to passing a reference) as discussed here:
Returning multiple objects in an R function
However, attempting this:
 newlist <- list("zsum" = zsum);  
 return(newlist);
produced the following:
 newlist <- list(“"  
 print(newlist);  
 #Error in print(newlist) : object 'newlist' not found  
 return(newlist);  
 #Error: object 'newlist' not found  
 }  
Error: unexpected '}' in "}"    
The function and calls that I am using are:
 f <- function (z) {
 zz <- read.zoo(z, header = TRUE, split = 2, format = "%d/%m/%Y", aggregate = mean);
 z.fill <- na.locf(zz);
 z.fill <- (z.fill >= 0.5) * z.fill;
 z.fill <- na.fill(z.fill,0);
 zfill.mat = matrix(z.fill, NROW(z.fill));
 z.sum <- rowSums(zfill.mat); 
 zsum <- zoo(z.sum,time(z.fill)); 
 newlist <- list("zsum" = zsum);  
 return(newlist);
 } 
 DF <- read.csv(file.choose(), header = TRUE, as.is = TRUE);
 DF.S <- split(DF[-2], DF[[2]]);
 Ret <- lapply(DF.S, f); 
If, instead, I replace newlist <- and return(newlist) simply with return(zsum), it returns a list, not a zoo object, which I cannot plot as it contains a header corresponding to the 'split' element from DF.S <- split(DF[-2], DF[[2]]);
Any help would be much appreciated!
 
    