[R-br] Outro problema com datas!!
Walmes Zeviani
walmeszeviani em gmail.com
Quarta Maio 25 10:05:57 BRT 2011
Caro Ivan,
Segue meu CMR de como entrar com os dados de data no formato mm-aa e criar
um fator cujos níveis estejam na ordem cronológica. A (minha) jogada foi
passar as strings mm-aa para dd-mm-aa e converter para as.Date, então
converter para fator. No final, como exercício de expressão regular (tô
aprendendo), transformei a representação dos níveis de aaaa-mm-dd para mm-aa
assim como nos dados importados.
lines <- "trati dat vari
1 03-08 0.0000000
1 04-08 0.3472222
1 05-08 0.0000000
1 06-08 1.7361111
1 07-08 2.7777778
1 08-08 2.0833333
1 09-08 2.4305556
1 10-08 0.0000000
1 11-08 0.0000000
1 12-08 0.0000000
1 01-09 0.0000000
1 02-09 26.7361111
1 03-09 70.4861111
1 04-09 99.3055556
1 05-09 99.3055556"
da <- read.table(textConnection(lines), header=TRUE,
stringsAsFactors=FALSE);
closeAllConnections()
str(da)
dat <- da$dat # joga para um vetor só para facilitar a manipulação
sort(dat) # ordenação alphanumerica feita na string
dat <- paste("01-", dat, sep="") # adiciona dia 01 a todas datas para ter
dd-mm-aa
dat <- as.Date(dat, format="%d-%m-%y") # converte para vetor de datas
str(dat)
format(dat, "%m-%y") # representa no formato mm-aa como entrou
plot(da$vari~dat) # gráfico sai na ordem correta das datas
plot(vari~factor(dat), da) # sai na ordem alphanumerica
dat.fac <- factor(dat) # passa datas para fator
levels(dat.fac) # níveis tem a ordem cronológica
plot(da$vari~dat.fac) # é fator mas sai na ordem correta
levels(dat.fac) <- gsub("\\d+(\\d{2})\\-(\\d+)\\-\\d+", "\\2\\-\\1",
levels(dat.fac)) # troca a represetação dos níveis
plot(da$vari~dat.fac) # com níveis mm-aa e na ordem correta
À disposição.
Walmes.
==========================================================================
Walmes Marques Zeviani
LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W)
Departamento de Estatística - Universidade Federal do Paraná
fone: (+55) 41 3361 3573
VoIP: (3361 3600) 1053 1173
e-mail: walmes em ufpr.br
twitter: @walmeszeviani
homepage: http://www.leg.ufpr.br/~walmes
linux user number: 531218
==========================================================================
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20110525/a1e165f0/attachment.html>
Mais detalhes sobre a lista de discussão R-br