[R] how to calculate "conditional" mean?

Gabor Grothendieck ggrothendieck at myway.com
Sun Dec 5 18:29:07 CET 2004


Do you mean the mean for all January firsts, the mean for all January 2nds,
etc.?

Look up ?format in addition to the commands you looked up before:

   tapply(DF$count, format(Dates, "%Y-%m"), mean)


Terry Mu <muster <at> gmail.com> writes:

: 
: Sorry, I didn't express my problem clearly. Your answers surely help,
: but it's not what I meant to ask.
: 
: I'd like mean for every day in a year, i.e, 
: mean for January 1st, 2nd, 3rd, ....
: Febuary, 1st, ..., 28th, 29th(if leap year)
: ...
: 
: There is only one count per day, so there is no need to calculate mean
: for each date.
: 
: sorry for the confusion. I appreciate your further comment.
: 
: Terry Mu
: 
: 
: On Sun, 5 Dec 2004 12:04:26 -0500, Terry Mu <muster <at> gmail.com> wrote:
: > thank you,
: > 
: > one more question:
: > 
: > How can I list only values for given condition?
: > for example, I want to see only data from febuary, i.e. month=2?
: > 
: > 
: > 
: > On Sun, 5 Dec 2004 16:26:11 +0000 (UTC), Gabor Grothendieck
: > <ggrothendieck <at> myway.com> wrote:
: > > Terry Mu <muster <at> gmail.com> writes:
: > >
: > > :
: > > : a data set like this:
: > >
: > >
: > > :
: > > : year   month    day    count
: > > : 2001     1            1         10
: > > : 2001     1            2          11
: > > : ....
: > > : 2004     7            17        8
: > > : ....
: > > :
: > > : basically it is a count of of some numbers everyday through a few years
: > > :
: > > : now I'd like to get the mean of the count for every day.
: > > :
: > > : I thought I can do this using for and ifelse,
: > > : but is there a simple way to do this? I wish a function like
: > > : mean(count, 'only when year, month, day are equal') could do this.
: > >
: > > You want to represent your dates as objects of the Date class
: > > and then use tapply.  (See ?as.Date, ?Date, ?tapply, ?paste, ?with.
: > > Also look up ?aggregate and ?by and read about dates in R News 4/1.)
: > > Assuming DF is your data frame:
: > >
: > >    Dates <- with(DF,
: > >        as.Date( paste(year, month, day, sep="-") )
: > >    )
: > >    tapply(DF$count, Dates, mean)
: > >
: > >
: > >
: > > ______________________________________________
: > > R-help <at> stat.math.ethz.ch mailing list
: > > https://stat.ethz.ch/mailman/listinfo/r-help
: > > PLEASE do read the posting guide! http://www.R-project.org/posting-
guide.html
: > >
: >
: 
: ______________________________________________
: R-help <at> stat.math.ethz.ch mailing list
: https://stat.ethz.ch/mailman/listinfo/r-help
: PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
: 
:




More information about the R-help mailing list