Pergunta

Suponha que eu tenha uma função que leia dados de uma tabela MySQL, manipula -os e retorne alguns dados.frame. Observe que a função é apenas um exemplo cuja funcionalidade não importa ..., por exemplo:

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

Acabei com um dados.Frame chamado MyDF. Agora eu gostaria de fazer com isso com um vetor de personagem dos nomes da tabela SQL e nomear os quadros de dados retornados correspondentemente. Se eu apenas usar

x=lapply(MySQLtablenames,addRowSd,con)

Vou receber uma lista chamada x. Claro que eu poderia iluminar e renomear tudo do jeito que gostaria, mas minha pergunta é:

Como posso fazer com que o Lapply (ou outra função comparável) retornem vários quadros de dados ou pelo menos uma lista que contém alguns nomes derivados do meu vetor de personagem "mySqltableNames"?

Foi útil?

Solução

Acabei de encontrar uma resposta sozinha:

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

Outras dicas

Se você fornecer um vetor de caractere, ele nomeará os itens na lista retornada pelo vetor de caractere fornecido (use.names padrão para true) ... Eu também usaria simplify = false como dependendo dos dados. Obtenha resultados imprevisíveis

x=sapply(MySQLtablenames,addRowSd,con, simplify=FALSE)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top