[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