Domanda

Supponiamo di avere una funzione che legge i dati da una tabella MySQL, li manipola e restituisce alcuni data.frame.Nota che la funzione è solo un esempio la cui funzionalità non ha importanza in sé..., ad esempio:

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

Alla fine mi ritrovo con un data.frame chiamato mydf.Ora mi piacerebbe fare questo su un vettore di caratteri di nomi di tabelle SQL E nominare i frame di dati restituiti di conseguenza.Se solo uso

x=lapply(MySQLtablenames,addRowSd,con)

Otterrò una lista chiamata x.Ovviamente potrei deselezionare e rinominare tutto come vorrei, ma la mia domanda è:

Come posso fare in modo che lapply (o un'altra funzione comparabile) restituisca più frame di dati singoli o almeno un elenco che contenga alcuni nomi derivati ​​dal mio vettore di caratteri "MySQLtablenames"?

È stato utile?

Soluzione

ho appena trovato una risposta da solo:

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

Altri suggerimenti

Se fornisci a sapply un vettore di caratteri, nominerà gli elementi nell'elenco restituito in base al vettore di caratteri fornito (USE.NAMES predefinito su TRUE)...Vorrei anche utilizzare semplifica=FALSE poiché, a seconda dei data.frames restituiti, potresti ottenere risultati imprevedibili

x=sapply(MySQLtablenames,addRowSd,con, simplify=FALSE)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top