Cómo devolver un hoja.de.datos con un nombre dado a una función?
Pregunta
Supongamos que tengo una función que lee los datos de una tabla de MySQL, lo manipula y vuelve algunos data.frame. Tenga en cuenta que la función es sólo un ejemplo cuya funcionalidad no tiene importancia en sí ..., ej .:
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(...)
termino con una llamada hoja.de.datos mydf. Ahora Me gustaría hacer a este personaje a un vector de nombres de tabla de SQL y el nombre de las tramas de datos devueltos correspondientemente. Si sólo tiene que utilizar
x=lapply(MySQLtablenames,addRowSd,con)
voy conseguir un poco de lista llamada x. Por supuesto que podría no listados y cambiar el nombre de todo el camino Me gustaría, pero mi pregunta es:
¿Cómo puedo hacer lapply (u otra función similar) volver tramas de datos individuales multple o, al menos, una lista que contiene algunos nombres derivados de mis "MySQLtablenames" vector de caracteres?
Solución
acaba de encontrar una respuesta por mi cuenta:
assign("somename",dframe,envir = .GlobalEnv)
Otros consejos
Si proporciona sapply un vector de caracteres, se nombrará a los elementos de la lista devuelta por el vector de caracteres suministrada (USE.NAMES por defecto es true) ... Me gustaría también utilizar FALSO = simplificar ya que dependiendo de las data.frames Enviado puede obtener resultados impredecibles
x=sapply(MySQLtablenames,addRowSd,con, simplify=FALSE)