[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