Question

Supposons que j'ai une fonction qui lit les données à partir d'une table MySQL, manipule et retours un peu data.frame. Notez que la fonction est juste un exemple dont la fonctionnalité ne se ... pas d'importance, par exemple .:

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(...)

je finis avec un data.frame appelé mydf. Maintenant, je aimerais que faire pour cela un vecteur de caractères des noms de tables SQL et le nom des dataframes renvoyés en conséquence. Si je viens d'utiliser

x=lapply(MySQLtablenames,addRowSd,con)

obtenir une liste je vais appelé x. Bien sûr, je pourrais unlist et tout changement de nom comme Id aiment, mais ma question est:

Comment puis-je faire lapply (ou une autre fonction comparable) retour dataframes unique multple ou au moins une liste qui contient des noms dérivés de mon vecteur de caractère « MySQLtablenames »?

Était-ce utile?

La solution

vient de trouver une réponse sur mon propre:

assign("somename",dframe,envir = .GlobalEnv)

Autres conseils

Si vous fournissez sapply un vecteur de caractère, il nommera les éléments de la liste renvoyée par le vecteur de caractères fourni (USE.NAMES par défaut TRUE) ... J'utiliser simplifiera = FALSE en fonction des data.frames vous pouvez obtenir de retour des résultats imprévisibles

x=sapply(MySQLtablenames,addRowSd,con, simplify=FALSE)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top