Suppongo di avere una funzione che legge i dati da una tabella MySQL, li manipola e restituisce alcuni dati.frame. Nota la funzione è solo un esempio la cui funzionalità non importa se stessa ..., per es .:Come restituire un data.frame con un nome dato da una funzione?
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(...)
io alla fine con un data.frame chiamato mydf. Ora mi piacerebbe fare questo a un vettore di caratteri di nomi di tabelle SQL e nominare i datafile restituiti in modo corrispondente. Se uso solo
x=lapply(MySQLtablenames,addRowSd,con)
Otterro 'una lista chiamata x. Naturalmente potrei non elencare e rinominare tutto nel modo in cui mi piacerebbe, ma la mia domanda è:
Come posso rendere lapply (o un'altra funzione paragonabile) restituire più singoli dataframes o almeno una lista che contiene alcuni nomi derivati dal mio personaggio vettore "MySQLtablenames"?
forse potrebbe aiutare a rendere la funzione addRowSd assegnare un nome al data.frame tornato ... come –
su 'nomi (x) <- MySQLtablenames' o in una riga' x <-setNames (lapply (MySQ Ltablenames, addRowSd, con), MySQLtablenames) 'o' x <-lapply (setNames (MySQLtablenames, MySQLtablenames), addRowSd, con) ' – Marek