[R] Function for Data Frame

MacQueen, Don macqueen1 at llnl.gov
Mon Apr 29 22:34:28 CEST 2013


Just to add a little, don't get distracted by the return() function.
Functions return the value of their final expression, provided it isn't an
assignment.

For your example, this will do the job:

myfunc <- function(DF) subset(DF, select=-V1)

If you want to modify the data frames in place, one way is to use a loop
instead of lapply.

mydfs <- list(DF1, DF2, DF3)

for (il in 1:3) mydfs[[il]] <- myfunc(mydfs[[il]])


But so should
  mydfs <- lapply(mydfs,myfunc)

I doubt very much you'll see any performance difference between using
lapply() and using an explicit loop.

-Don

-- 
Don MacQueen

Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550
925-423-1062





On 4/29/13 7:23 AM, "Sparks, John James" <jspark4 at uic.edu> wrote:

>Dear R Helpers,
>
>I have about 20 data frames that I need to do a series of data scrubbing
>steps to.  I have the list of data frames in a list so that I can use
>lapply.  I am trying to build a function that will do the data scrubbing
>that I need.  However, I am new to functions and there is something
>fundamental that I am not understanding.  I use the return function at the
>end of the function and this completes the data processing specified in
>the function, but leaves the data frame that I want changed unaffected.
>How do I get my function to apply its results to the data frame in
>question instead of simply displaying the results to the screen?
>
>Any helpful guidance would be most appreciated.
>
>--John Sparks
>
>
>x=as.data.frame(matrix(c(1,2,3,
>        1,2,3,
>        1,2,2,
>        1,2,2,
>       1,1,1),ncol=3,byrow=T))
>
>
>myfunc<-function(DF){
> DF<-subset(DF,select=-c(V1))
> return(DF)
>}
>
>myfunc(x)
>
>#How to get this change to data frame x?
>#And preferrably not send the results to the screen?
>x
>
>______________________________________________
>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.



More information about the R-help mailing list