means by year, month and day

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

means by year, month and day

Tatume
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]]


______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: means by year, month and day

Jianling Fan
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 <[hidden email]> 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]]
>
>
> ______________________________________________
> [hidden email] 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
樊建凌

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: means by year, month and day

jholtman
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 = 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 <[hidden email]> 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 <[hidden email]> 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]]
> >
> >
> > ______________________________________________
> > [hidden email] 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
> 樊建凌
>
> ______________________________________________
> [hidden email] 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]]

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: means by year, month and day

Tatume
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 [[hidden email]]
Sent: Sunday, July 17, 2016 7:14 PM
To: Jianling Fan
Cc: Tom Mosca; [hidden email]
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 <[hidden email]<mailto:[hidden email]>> 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 <[hidden email]<mailto:[hidden email]>> 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 �K
>
> The first four columns are year, month, day, hour (0 �V 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]]
>
>
> ______________________________________________
> [hidden email]<mailto:[hidden email]> 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
�ԫح�

______________________________________________
[hidden email]<mailto:[hidden email]> 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]]


______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: means by year, month and day

R help mailing list-2
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 <[hidden email]> 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 [[hidden email]]
> Sent: Sunday, July 17, 2016 7:14 PM
> To: Jianling Fan
> Cc: Tom Mosca; [hidden email]
> 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 <[hidden email]
> <mailto:[hidden email]>> 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 <[hidden email]<mailto:[hidden email]>>
> 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]]
> >
> >
> > ______________________________________________
> > [hidden email]<mailto:[hidden email]> 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
> 樊建凌
>
> ______________________________________________
> [hidden email]<mailto:[hidden email]> 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]]
>
>
> ______________________________________________
> [hidden email] 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]]

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: means by year, month and day

Tatume
Dear William,



The line of code you composed works perfectly, as you knew it would.  Thank you for your kind response.  I will now endeavor to forget that other function exists.



Sincerely, Tom

________________________________
From: William Dunlap [[hidden email]]
Sent: Monday, July 18, 2016 12:14 PM
To: Tom Mosca
Cc: jim holtman; Jianling Fan; [hidden email]
Subject: Re: [R] means by year, month and day

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<http://tibco.com>

On Mon, Jul 18, 2016 at 6:18 AM, Tom Mosca <[hidden email]<mailto:[hidden email]>> 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 [[hidden email]<mailto:[hidden email]>]
Sent: Sunday, July 17, 2016 7:14 PM
To: Jianling Fan
Cc: Tom Mosca; [hidden email]<mailto:[hidden email]>
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><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 <[hidden email]<mailto:[hidden email]><mailto:[hidden email]<mailto:[hidden email]>>> 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 <[hidden email]<mailto:[hidden email]><mailto:[hidden email]<mailto:[hidden email]>>> 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 �K
>
> The first four columns are year, month, day, hour (0 �V 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]]
>
>
> ______________________________________________
> [hidden email]<mailto:[hidden email]><mailto:[hidden email]<mailto:[hidden email]>> 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
�ԫح�

______________________________________________
[hidden email]<mailto:[hidden email]><mailto:[hidden email]<mailto:[hidden email]>> 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]]


______________________________________________
[hidden email]<mailto:[hidden email]> 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]]


______________________________________________
[hidden email] 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.