Wie ein data.frame mit einem bestimmten Namen von einer Funktion zurückgeben?

StackOverflow https://stackoverflow.com/questions/4041806

  •  27-09-2019
  •  | 
  •  

Frage

Angenommen ich eine Funktion haben, die Daten aus einer MySQL-Tabelle liest, manipuliert sie und kehrt einige data.frame. Beachten Sie die Funktion ist nur ein Beispiel, deren Funktionalität selbst spielt keine Rolle, ..., z.B .:

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

ich mit einem data.frame genannt mydf enden. Nun Id wie zu dies zu einem Zeichenvektor von SQL Tabellennamen tun und die zurückgegebenen Datenrahmen entsprechend benennen. Wenn ich nur

x=lapply(MySQLtablenames,addRowSd,con)

Ich werde eine Liste erhalten, genannt x. Natürlich konnte ich die Art und Weise wie Id zu, und fehlenden oder Umbenennungs alles, aber meine Frage ist:

Wie kann ich lapply machen (oder eine andere vergleichbare Funktion) zurückzukehren multple einzelne Datenrahmen oder zumindest eine Liste, die einige Namen enthält, abgeleitet von meinem Charakter Vektor „MySQLtablenames“?

War es hilfreich?

Lösung

habe gerade eine Antwort auf meine eigene:

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

Andere Tipps

Wenn Sie sapply ein Zeichen Vektor liefern, werden die Elemente in der zurückgegebenen Liste der mitgelieferten Zeichenvektor Namen (USE.NAMES auf TRUE default) ... Ich würde auch simplify = FALSE als abhängig von den data.frames verwenden zurückgegeben können Sie unvorhersehbare Ergebnisse erhalten

x=sapply(MySQLtablenames,addRowSd,con, simplify=FALSE)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top