I have a list of data frames and have given each element in the list (e.g. each data frame) a name:
e.g.
df1 <- data.frame(x = c(1:5), y = c(11:15))
df2 <- data.frame(x = c(1:5), y = c(11:15))
mylist <- list(A = df1, B = df2)
I have a function that I want to apply to each data frame; In this function, I want to include a line to write the results to file (eventually I want to do more complicated things like save plots of the correlation between two variables for each data frame but thought I'd start simple)
e.g.
NewVar <- function(mydata, whichVar, i) {
mydata$newVar <- mydata[, whichVar] + 1
write.csv(mydata, file = i)
}
I want to use lapply()
to apply this function to each data frame in my list
something like:
hh<-lapply(mylist, NewVar, whichVar = "y")
I can't figure out how to assign the "i" within the context of lapply so that i
iterates over the names in the list of data frames, saving multiple files with different names (in this case, two files named A
and B
) that correspond with the modified data frames.
lapply()
if nothing is being returned. Something likel_ply()
from theplyr
package is probably more appropriate. Or just a for loop. – Ciarán Tobin