Assume I have a function that reads data from a MySQL table, manipulates it and returns some data.frame. Note the function is just an example whose functionality does not matter itself..., E.g.:
addRowSd <- function(table,con,pattern="^Variable") {
dframe <- dbReadTable(con,table)
cn <- colnames(dframe)
qs <- subset(x, x %in% grep(pattern, x, value=TRUE))
dframe$qsd <- sd(t(dframe[,c(qs)]))
return(dframe)
}
mydf$sd <- addRowSd(...)
I end up with a data.frame called mydf. Now I´d like to do to this to a character vector of SQL table names AND name the returned dataframes correspondingly. If I just use
x=lapply(MySQLtablenames,addRowSd,con)
I´ll get some list called x. Of course I could unlist and rename everything the way I´d like to, but my question is:
How can I make lapply (or another comparable function) return multple single dataframes or at least a list that contains some names derived from my character vector "MySQLtablenames"?
names(x) <- MySQLtablenames
or in one linex<-setNames(lapply(MySQLtablenames,addRowSd,con),MySQLtablenames)
orx<-lapply(setNames(MySQLtablenames,MySQLtablenames),addRowSd,con)
– Marek