[R] means by year, month and day

William Dunlap wdunlap at tibco.com
Mon Jul 18 18:14:38 CEST 2016


If you are very inexperienced with R you still have time to forget you ever
heard
of the attach function.  Your code
    > attach(datATMP)
    > datATMP1 <- datATMP[order(MM),]
    > detach(datATMP)
can be replaced by
    > datATMP1 <- datATMP[order(datATMP[["MM"]]),]


Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Mon, Jul 18, 2016 at 6:18 AM, Tom Mosca <tom at vims.edu> wrote:

> Dear Jim,
>
>
>
> I'm very inexperienced with R.
>
>
>
> I'm sorry I failed to recognize the flaw in my example.  I just clipped
> the first few lines of data, and should have realized that they were for
> the first few hours of a single day.
>
>
>
> My first problem was to take the means by day.  As all the data come from
> a single year, I accomplished the goal by using:
>
> > datATMP<-aggregate(mydata, by=mydata[c("MM","DD")], FUN=mean)
>
>
>
> My second problem was to sort the results by month, for which I used:
>
> > attach(datATMP)
> > datATMP1 <- datATMP[order(MM),]
> > datATMP1
> > detach(datATMP)
>
>
>
> I have read that I should avoid using attach(), and should use with()
> instead.  However, I have not yet figured out how to do this with with().
> I'm only running short segments of code, and think I'll be alright with
> attach() for the time being, but do want to develop better form.  So, I'll
> keep working on it.
>
>
>
> Thank you for your kind response and examples.  I will study them.
>
>
>
> Sincerely, Tom
>
>
>
>
>
> ________________________________
> From: jim holtman [jholtman at gmail.com]
> Sent: Sunday, July 17, 2016 7:14 PM
> To: Jianling Fan
> Cc: Tom Mosca; r-help at r-project.org
> Subject: Re: [R] means by year, month and day
>
> Here is an example of using dplyr.  Please provide a reasonable subset of
> data.  Your was all for the same date.  Use 'dput' to put in your email.
>
> > x <- read.table(text = "     X.YY MM DD hh WDI R.WSP D.GST   PRES  ATMP
> DEWP
> +   2015  1  1  0 328   3.6   4.5 1028.0   3.8  -3.5
> +   2015  1  1  1 300   2.1   2.7 1027.9   3.7  -4.4
> +   2015  1  1  2 264   2.4   2.9 1027.7   3.6  -4.5
> +   2015  1  1  3 230   4.1   4.5 1027.4   4.2  -3.8
> +   2015  1  1  4 242   8.1   9.2 1026.6   4.4  -3.1
> +   2015  1  1  5 262   9.3  10.1 1026.6   4.1  -3.8
> +   2015  1  1  6 267   8.6   9.6 1026.3   4.2  -3.8
> +   2015  1  1  7 264   9.3   9.9 1026.1   3.9  -2.8
> +   2015  1  1  8 268   8.2   9.1 1026.1   3.5  -3.0
> +   2015  1  1  9 272   8.8   9.6 1025.4   3.2  -3.3
> +   2015  2  1  0 328   3.6   4.5 1028.0   3.8  -3.5
> +   2015  2  1  1 300   2.1   2.7 1027.9   3.7  -4.4
> +   2015  2  1  2 264   2.4   2.9 1027.7   3.6  -4.5
> +   2015  2  1  3 230   4.1   4.5 1027.4   4.2  -3.8
> +   2015  2  1  4 242   8.1   9.2 1026.6   4.4  -3.1
> +   2015  2  1  5 262   9.3  10.1 1026.6   4.1  -3.8
> +   2015  2  1  6 267   8.6   9.6 1026.3   4.2  -3.8
> +   2015  2  1  7 264   9.3   9.9 1026.1   3.9  -2.8
> +   2015  2  1  8 268   8.2   9.1 1026.1   3.5  -3.0
> +   2015  2  1  9 272   8.8   9.6 1025.4   3.2  -3.3
> +   2015  3  1  0 328   3.6   4.5 1028.0   3.8  -3.5
> +   2015  3  1  1 300   2.1   2.7 1027.9   3.7  -4.4
> +   2015  3  1  2 264   2.4   2.9 1027.7   3.6  -4.5
> +   2015  3  1  3 230   4.1   4.5 1027.4   4.2  -3.8
> +   2015  3  1  4 242   8.1   9.2 1026.6   4.4  -3.1
> +   2015  3  1  5 262   9.3  10.1 1026.6   4.1  -3.8
> +   2015  3  1  6 267   8.6   9.6 1026.3   4.2  -3.8
> +   2015  3  1  7 264   9.3   9.9 1026.1   3.9  -2.8
> +   2015  3  1  8 268   8.2   9.1 1026.1   3.5  -3.0
> +   2015  3  1  9 272   8.8   9.6 1025.4   3.2  -3.3
> +  ",
> +  header = TRUE,
> +  as.is<http://as.is> = TRUE)
> >
> >  library(dplyr)
> >  by_year <- x %>%
> +             group_by(X.YY) %>%
> +             summarise_each(funs(mean))
> >
> >  by_ym <- x %>%
> +             group_by(X.YY, MM ) %>%
> +             summarise_each(funs(mean))
> >
> >  by_ymd <- x %>%
> +             group_by(X.YY, MM, DD) %>%
> +             summarise_each(funs(mean))
> >
> > by_year
> Source: local data frame [1 x 10]
>    X.YY    MM    DD    hh   WDI R.WSP D.GST    PRES  ATMP  DEWP
>   <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>   <dbl> <dbl> <dbl>
> 1  2015     2     1   4.5 269.7  6.45  7.21 1026.81  3.86  -3.6
> > by_ym
> Source: local data frame [3 x 10]
> Groups: X.YY [?]
>    X.YY    MM    DD    hh   WDI R.WSP D.GST    PRES  ATMP  DEWP
>   <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl>   <dbl> <dbl> <dbl>
> 1  2015     1     1   4.5 269.7  6.45  7.21 1026.81  3.86  -3.6
> 2  2015     2     1   4.5 269.7  6.45  7.21 1026.81  3.86  -3.6
> 3  2015     3     1   4.5 269.7  6.45  7.21 1026.81  3.86  -3.6
> > by_ymd
> Source: local data frame [3 x 10]
> Groups: X.YY, MM [?]
>    X.YY    MM    DD    hh   WDI R.WSP D.GST    PRES  ATMP  DEWP
>   <int> <int> <int> <dbl> <dbl> <dbl> <dbl>   <dbl> <dbl> <dbl>
> 1  2015     1     1   4.5 269.7  6.45  7.21 1026.81  3.86  -3.6
> 2  2015     2     1   4.5 269.7  6.45  7.21 1026.81  3.86  -3.6
> 3  2015     3     1   4.5 269.7  6.45  7.21 1026.81  3.86  -3.6
> >
>
>
> 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.
>
> On Sun, Jul 17, 2016 at 5:42 PM, Jianling Fan <fanjianling at gmail.com
> <mailto:fanjianling at gmail.com>> wrote:
> Hello Tom,
>
> try aggregate() or cast(). Both works.I prefer the latter.
>
>
> library(reshape)
> desc<-melt(mydata, measure.vars=c("WDI","R.WSP", "D.GST", "PRES",
> "ATMP", "DEWP"),
>            id.vars=c("X.YY","MM","DD"))
> summary<-cast(desc, X.YY+MM+DD~variable, mean)
>
>
>
>
>
>
>
>
>
> On 17 July 2016 at 06:22, Tom Mosca <tom at vims.edu<mailto:tom at vims.edu>>
> wrote:
> > Hello Good Folk,
> >
> > My dataframe looks like this:
> >> mydata
> >      X.YY MM DD hh WDI R.WSP D.GST   PRES  ATMP  DEWP
> > 1    2015  1  1  0 328   3.6   4.5 1028.0   3.8  -3.5
> > 2    2015  1  1  1 300   2.1   2.7 1027.9   3.7  -4.4
> > 3    2015  1  1  2 264   2.4   2.9 1027.7   3.6  -4.5
> > 4    2015  1  1  3 230   4.1   4.5 1027.4   4.2  -3.8
> > 5    2015  1  1  4 242   8.1   9.2 1026.6   4.4  -3.1
> > 6    2015  1  1  5 262   9.3  10.1 1026.6   4.1  -3.8
> > 7    2015  1  1  6 267   8.6   9.6 1026.3   4.2  -3.8
> > 8    2015  1  1  7 264   9.3   9.9 1026.1   3.9  -2.8
> > 9    2015  1  1  8 268   8.2   9.1 1026.1   3.5  -3.0
> > 10   2015  1  1  9 272   8.8   9.6 1025.4   3.2  -3.3 …
> >
> > The first four columns are year, month, day, hour (0 – 23).  I wish to
> take the means of the next six columns (WDIR, WSPD, GST, PRES, ATMP and
> DEWP) by year, month and day.  That is, I want daily averages.
> >
> > Please help.  Thank you.
> >
> > Tom
> >
> >         [[alternative HTML version deleted]]
> >
> >
> > ______________________________________________
> > R-help at r-project.org<mailto:R-help at r-project.org> mailing list -- To
> UNSUBSCRIBE and more, see
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
>
>
>
> --
> Jianling Fan
> 樊建凌
>
> ______________________________________________
> R-help at r-project.org<mailto:R-help at r-project.org> mailing list -- To
> UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
>
>         [[alternative HTML version deleted]]
>
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list