Perhaps read ?mean... On June 3, 2020 6:15:11 PM PDT, Ogbos Okike <giftedlife2...@gmail.com> wrote: >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 ><jdnew...@dcn.davis.ca.us> >wrote: > >> df[[ 5 ]][ 0 == df[[ 5 ]] ] <- NA >> >> On June 3, 2020 1:59:06 AM PDT, Ogbos Okike ><giftedlife2...@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@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. >>
-- Sent from my phone. Please excuse my brevity. ______________________________________________ R-help@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.