[R-br] exportar um vetor do tipo list

Rubem Kaipper Ceratti rubem_ceratti em yahoo.com.br
Quinta Abril 4 15:52:24 BRT 2013


Aline,

Supondo uma lista 'x' do tipo 

x <- lapply(4:5, function(i) rnorm(i))


você pode criar um índice que identifique os vetores e exportar num data frame. P. ex.:

x.lista <- mapply(function(i, x) data.frame(i, x), 1:length(x), x, SIMPLIFY = F)
(x.df <- do.call(rbind, x.lista))
write.csv(x.df, "lista.csv", row.names = F)

Daí, em uma outra sessão, a lista original pode ser recuperada fazendo

x.df <- read.csv('lista.csv')
(x <- split(x.df$x, x.df$i))

Att.,
Rubem


________________________________
 De: Aline Lipsky <line_lips em hotmail.com>
Para: programa r <r-br em listas.c3sl.ufpr.br> 
Enviadas: Quinta-feira, 4 de Abril de 2013 14:04
Assunto: Re: [R-br] exportar um vetor do tipo list
 

 
Manoel,
Como minha lista tem 6000 vetores é mais fácil eu inserir NA nos vetores.
Qual função devo usar para isso?

Grata, 

Aline F. Lipsky



________________________________
From: mcz.fea em gmail.com
Date: Tue, 2 Apr 2013 19:11:13 -0300
To: r-br em listas.c3sl.ufpr.br
Subject: Re: [R-br] exportar um vetor do tipo list


Aline, normalmente exportamos um data.frame para csv. E você quer exportar uma lista. Isso cria um problema. Tem duas possibilidades. Uma é transformar sua lista num data.frame. Como um data.frame é, tecnicamente, uma lista, não é um problema. De todo modo, o jeito mais fácil é fazer todos os vetores terem o mesmo tamanho, inserindo NA nos vetores de tamanho menores.

Outra possibilidade é você salvar cada vetor numa aba em excel, usando o pacote xlsx. Abaixo segue uma função que criamos aqui na empresa que salva sua lista em um arquivo de excel:

cria_xlsx <- function (ldf, arquivo) { # ldf é a lista, em que cada elemento da lista (se nomeado) é uma aba do excel. arquivo é como quer salvar o arquivo.
  if (require(xlsx) == F) install.packages('xlsx')
  wb <- createWorkbook()
  lsheets <- as.list(1:length(ldf))
  for (i in 1:length(ldf)) {
    lsheets [[i]] <- createSheet(wb, sheetName=names(ldf)[[i]])
    addDataFrame(ldf[[i]], lsheets[[i]], row.names=F)
  }
  saveWorkbook(wb, paste(getwd(), "/", arquivo, ".xlsx", sep=""))
}

após criar a função, assumindo que sua lista se chama lista, basta:

cria_xlsx(lista, "arquivo_export")

abçs
M



2013/4/2 Aline Lipsky <line_lips em hotmail.com>


>Boa tarde,
>
>
>Eu tenho um vetor do tipo list com vetores de tamanhos diferentes. Preciso exportar do r no formato "csv" ou "txt", mas não estou conseguindo.
>Alguém sabe se tem como fazer essa exportação?
>
>
>Grata,
>
>
>Aline F. Lipsky
>_______________________________________________
>R-br mailing list
>R-br em listas.c3sl.ufpr.br
>https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
>


-- 
Manoel Galdino
https://sites.google.com/site/galdinomcz/

_______________________________________________
R-br mailing list
R-br em listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
_______________________________________________
R-br mailing list
R-br em listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130404/26b570fe/attachment-0001.html>


Mais detalhes sobre a lista de discussão R-br