Skip to content
Back to formatted view

Raw Message

Message-ID: <CAAxdm-6qe0Jrnr8zfzHqB7Y9TDzHCvF=mQQZwn-iaOTb1sSBcg@mail.gmail.com>
Date: 2012-11-23T03:02:25Z
From: jim holtman
Subject: Data frame manipulation
In-Reply-To: <CAGtwFe2N3XNzpZZz=5rbgxQMXwh6Mtty0n4Z=wud4EbmZDdi2g@mail.gmail.com>

The 'reshape2' package is your friend:

> require(reshape2)
> x <- melt(wrong, id = c("Local", "M?s", "Dia", "Colonia"), variable.name = "Hora")
> # remove "X" from Hora
> x$Hora <- as.character(substring(x$Hora, 2))
> head(x)  # not in the right order
      Local   M?s Dia Colonia Hora   value
1 Concei??o Junho   1       3   6h 2.16137
2 Concei??o Junho   2       3   6h 2.46538
3 Concei??o Junho   3       3   6h 2.53275
4 Concei??o Junho   1       4   6h 1.65321
5 Concei??o Junho   2       4   6h 2.30320
6 Concei??o Junho   3       4   6h 2.71012
> # sort, but first add blank on Hora for less that 10h for sorting
> x$Hora <- ifelse(nchar(x$Hora) == 2, paste0(" ", x$Hora), x$Hora)
> x <- x[order(x$Local, x$M?s, x$Dia, x$Colonia, x$Hora), ]
>
> head(x,20)
        Local   M?s Dia Colonia Hora   value
10  Concei??o julho   1       3   6h 2.20952
20  Concei??o julho   1       3   7h 2.01284
30  Concei??o julho   1       3   8h 1.79239
40  Concei??o julho   1       3   9h 1.59106
50  Concei??o julho   1       3  10h 1.62325
60  Concei??o julho   1       3  11h 1.51851
70  Concei??o julho   1       3  12h 1.41497
80  Concei??o julho   1       3  13h 1.38021
90  Concei??o julho   1       3  14h 1.66276
100 Concei??o julho   1       3  15h 1.46240
110 Concei??o julho   1       3  16h 1.53148
120 Concei??o julho   1       3  17h 1.66276
1   Concei??o Junho   1       3   6h 2.16137
11  Concei??o Junho   1       3   7h 2.20412
21  Concei??o Junho   1       3   8h 2.08991
31  Concei??o Junho   1       3   9h 1.72428
41  Concei??o Junho   1       3  10h 1.69897
51  Concei??o Junho   1       3  11h 1.62325
61  Concei??o Junho   1       3  12h 1.44716
71  Concei??o Junho   1       3  13h 1.51851



On Thu, Nov 22, 2012 at 8:53 PM, Raoni Rodrigues
<caciquesamurai at gmail.com> wrote:
> structure(list(Local = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L, 1L), .Label = "Concei??o", class = "factor"), M?s = structure(c(2L,
> 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("julho", "Junho"
> ), class = "factor"), Dia = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
> 1L, 1L), Colonia = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L),
>     Hora = structure(1:10, .Label = c("6h", "7h", "8h", "9h",
>     "10h", "11h", "12h", "13h", "14h", "15h", "16h", "17h"), class =
> "factor"),
>     N = c(2.16137, 2.20412, 2.08991, 1.72428, 1.69897, 1.62325,
>     1.44716, 1.51851, 1.43136, 1.47712)), .Names = c("Local",
> "M?s", "Dia", "Colonia", "Hora", "N"), row.names = c(NA, 10L), class =
> "data.frame")



-- 
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.