[R] Yearly hourly mean and NA

Ogbos Okike g||ted|||e2014 @end|ng |rom gm@||@com
Thu Jun 4 03:15:11 CEST 2020


Dear Jeff,
Thank you so much for your time.
I tried your code. It successfully assigned NA to the zeros.

But the main code seems not to work with the NAs. The mean, for example,
resulted in NA. I am attaching the data for a period of one year  and the
code which I use  in plotting the data. Maybe it might be easier for you to
spot where I run into error (my plot was just empty).
Thanks again.
Best regards
Ogbos


On Wed, Jun 3, 2020 at 8:47 PM Jeff Newmiller <jdnewmil using dcn.davis.ca.us>
wrote:

> df[[ 5 ]][ 0 == df[[ 5 ]] ] <- NA
>
> On June 3, 2020 1:59:06 AM PDT, Ogbos Okike <giftedlife2014 using gmail.com>
> wrote:
> >Dear R-Experts,
> >I have a cosmic ray data that span several years. The data frame is of
> >the
> >form:
> >03 01 01 00    3809
> >03 01 01 01    3771
> >03 01 01 02    3743
> >03 01 01 03    3747
> >03 01 01 04    3737
> >03 01 01 05    3751
> >03 01 01 06    3733
> >03 01 01 07    3732.
> >where the columns 1 to 5 stand for year, month, day, hour and counts.
> >Some hours when the station does not have data are assigned zero,
> >implying
> >there could be several zeros in column 5. Since my aim is to plot the
> >hourly mean for all the  years, I started learning with one year - year
> >2003.
> >
> >I carefully went through the data, removing any day that contains zero
> >for
> >any of the hours.  Instead of the 365 days in the year 2003, I ended up
> >with 362 days.
> >
> >I saved that as CLMX1C (now stored in Ogbos2 with dput function, see
> >attached please).
> >
> >If I run the data with my script, it gives me what I am expecting. My
> >script is:
> >d<-read.table("CLMX1C",col.names=c("h","count"))
> >y<-d$count
> >data<-(y-mean(y))/mean(y)*100
> >
> >A<-matrix(rep(1:24,362))
> >B<-matrix(data)
> >
> > oodf<-data.frame(A,B)
> > oodf<-data.frame(A,B)
> >library(plotrix)
> >std.error<-function(x) return(sd(x)/(sum(!is.na(x))))
> >oomean<-as.vector(by(oodf$B,oodf$A,mean))
> >oose<-as.vector(by(oodf$B,oodf$A,std.error))
> >plot(1:24,oomean,type="b",ylim=c(-0.4,0.5),
> > xlab="Hours",ylab="CR count",main="CR daily variation for 2004")
> >dispersion(1:24,oomean,oose,arrow.cap=.01)
> >
> >Now, instead of foraging through the big data removing the day for
> >which
> >there is a missing data for any hour, I wish to try to replace the
> >missing
> >data with NA and hoping that it will do the job for me.
> >
> >I added just three lines in the script above:
> >d<-read.table("2003",col.names=c("y","m","d","h","count"))
> >y<-d$count
> >df<-data.frame(y)#line 1
> >library('dplyr') # line 2
> >y<-na_if(df, 0) #line 3
> >data<-(y-mean(y))/mean(y)*100.
> >Then I started getting error messages:
> >Error in is.data.frame(x) :
> >  (list) object cannot be coerced to type 'double'
> >In addition: There were 26 warnings (use warnings() to see them).
> >
> >I hope you will assist me to deal with the issues of replacing zeros
> >with
> >NA in column 5 in such a way that my code will run.
> >
> >Iam ever indebted!!
> >Best regards
> >Ogbos
> >______________________________________________
> >R-help using 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.
>
> --
> Sent from my phone. Please excuse my brevity.
>


More information about the R-help mailing list