[R-br] RES: Impressão do objeto Date
Mauro Sznelwar
sznelwar em uol.com.br
Domingo Maio 31 23:58:37 BRT 2015
Não estou conseguindo rodar vosso exemplo, falta alguma biblioteca por acaso?
> lines <- "
+ 5928671,14,-3.831290,-38.50146,2015-02-01 00:00:01
+ 5926098,44,-3.709390,-38.58986,2015-02-02 00:01:13
+ 5915217,145,-3.743671,-38.48788,2015-02-03 00:01:16
+ 5444641,174,-3.766271,-38.57452,2015-02-01 00:01:38
+ 2250561,977,-3.738654,-38.48400,2015-02-02 00:01:47
+ 5671754,14,-3.831290,-38.50146,2015-02-03 00:02:43
+ "
> con <- textConnection(lines)
> df <- read.csv(con, header = F)
> close(con)
>
> dias <- unique(as.Date(df[, 5]))
> for (i in 1:length(dias)) {
+ dfi <- df[as.Date(df[, 5]) == dias[i], ]
+ diretorio <- paste(getwd(), "rsc/data", format(dias[i], format = "%Y-%m-%d"),
+ sep = "/", collapse = "")
+ mkdirs(diretorio)
+ write.csv(dfi, paste(diretorio, "saida.csv", sep = "/", collapse = "")
+ }
Error: unexpected '}' in:
" write.csv(dfi, paste(diretorio, "saida.csv", sep = "/", collapse = "")
}"
David, desculpe a demora em responder.
O que ocorre é que a função as.Date armazena o objeto o qual foi passado para ela com um número.
Ela apenas "mostra" como data, com referência a uma data inicial qualquer (por default 01/01/1970).
Quando você usa essas datas (armazenadas como número) no for com o operador in, elas de fato viram números.
Tem algumas formas de contornar isso, a que eu te mandei é a que me pareceu mexer menos na lógica do seu script.
Você poderia, por exemplo, aplicar novamente a função as.Data dentro do for.
Substituir format(dia, format = "%Y-%m-%d") por as.Date(dia, origin = "1970-01-01")
Um abraço.
---
Este email foi escaneado pelo Avast antivírus.
http://www.avast.com
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150531/3bafae8c/attachment.html>
Mais detalhes sobre a lista de discussão R-br