Dear All, Thanks for the useful ideas.
This is how I solved the problem and it works well. #################################################################################### sowdays=function(data,Year){ Year = unique(data$Year) #gives you sum of rain in 2 consecutive days twodays <- rowSums(embed(Samaru56$Rain,2)) # the condition of heavy rainfall sel <- which(twodays>=20) #gives you vector of row numbers in which above condition results is TRUE value #Samaru56[sel,] D=Samaru56[sel,] day<- c() for (year in 1928: 1983){ S <- subset(D, D$Year == year) #subset each year for(i in S$Day[S$Day>91]){ if(S[S$Day == i, 3] >= 20){ day[year-(min(Year)-1)] = i break } } } day } sowdays(Samaru56, Samaru56$Year) ####################################################################################### I want to make it with the additional condition that there is no 10 day (or longer) dry spell in the next 30 days. In definition a 'dry day' is here defined as a day with less than 0.85 mm of rain. Any idea of how I can include this condition in the above condition is can help me alot. Thanks. Regards, Fredo. On Wed, Oct 15, 2014 at 6:34 PM, Jeff Newmiller <jdnew...@dcn.davis.ca.us> wrote: > twodays <- c(filter(x,c(1,1),sides=1)) > > might be more efficient with memory than the embed approach, which might > be important if more than two days were of interest. > --------------------------------------------------------------------------- > Jeff Newmiller The ..... ..... Go Live... > DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live > Go... > Live: OO#.. Dead: OO#.. Playing > Research Engineer (Solar/Batteries O.O#. #.O#. with > /Software/Embedded Controllers) .OO#. .OO#. rocks...1k > --------------------------------------------------------------------------- > Sent from my phone. Please excuse my brevity. > > On October 15, 2014 2:59:40 AM PDT, PIKAL Petr <petr.pi...@precheza.cz> > wrote: > >Hi > > > >twodays <- rowSums(embed(Samaru56$Rain,2)) > > > >gives you sum of rain in 2 cosecutive days > > > >sel <- which(twodays>20) > > > >gives you vector of row numbers in which above condition results in > >TRUE value > > > >Samaru56[sel,] > > > >selects these rows > > > >Regards > >Petr > > > >> -----Original Message----- > >> From: r-help-boun...@r-project.org [mailto:r-help-bounces@r- > >> project.org] On Behalf Of Frederic Ntirenganya > >> Sent: Wednesday, October 15, 2014 9:01 AM > >> To: r-help@r-project.org > >> Subject: [R] Sum of two consecutive number in dataset. > >> > >> Dear All, > >> > >> i am solving the following problem in my work. > >> > >> The first day from April 01 that gets more than 20 mm on a single > >day, > >> or totalled over 2 consecutive days. i.e April 01 = 92th day of the > >> year. > >> > >> The column of interest is "Rain". > >> > head(Samaru56) > >> Year Day Rain > >> 1 1928 1 0 > >> 2 1928 2 0 > >> 3 1928 3 0 > >> 4 1928 4 0 > >> 5 1928 5 0 > >> 6 1928 6 0 > >> > >> I used the loop below but it is not printing anything. > >> > >> sow_day=c() > >> for (i in 1928:1983){ > >> for (j in 92:366){ > >> k=j-1 > >> s_rain=Samaru56$Rain[k] + Samaru56$Rain[j] > >> if (s_rain>=20) > >> sow_day=j > >> break > >> } > >> Samaru56$year=Samaru56$Year[sow_day] > >> Samaru56$Day=Samaru56$Day[sow_day] > >> Samaru56$Rain=Samaru56$Rain[sow_day] > >> } > >> sow_day > >> > >> Any idea is welcome on how I can solve this problem. Thanks > >> > >> -- > >> Frederic Ntirenganya > >> Maseno University, > >> Kenya. > >> Mobile:(+254)718492836 > >> Email: fr...@aims.ac.za > >> https://sites.google.com/a/aims.ac.za/fredo/ > >> > >> [[alternative HTML version deleted]] > >> > >> ______________________________________________ > >> R-help@r-project.org mailing list > >> 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. > > > >________________________________ > >Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a jsou > >určeny pouze jeho adresátům. > >Jestliže jste obdržel(a) tento e-mail omylem, informujte laskavě > >neprodleně jeho odesílatele. Obsah tohoto emailu i s přílohami a jeho > >kopie vymažte ze svého systému. > >Nejste-li zamýšleným adresátem tohoto emailu, nejste oprávněni tento > >email jakkoliv užívat, rozšiřovat, kopírovat či zveřejňovat. > >Odesílatel e-mailu neodpovídá za eventuální škodu způsobenou > >modifikacemi či zpožděním přenosu e-mailu. > > > >V případě, že je tento e-mail součástí obchodního jednání: > >- vyhrazuje si odesílatel právo ukončit kdykoliv jednání o uzavření > >smlouvy, a to z jakéhokoliv důvodu i bez uvedení důvodu. > >- a obsahuje-li nabídku, je adresát oprávněn nabídku bezodkladně > >přijmout; Odesílatel tohoto e-mailu (nabídky) vylučuje přijetí nabídky > >ze strany příjemce s dodatkem či odchylkou. > >- trvá odesílatel na tom, že příslušná smlouva je uzavřena teprve > >výslovným dosažením shody na všech jejích náležitostech. > >- odesílatel tohoto emailu informuje, že není oprávněn uzavírat za > >společnost žádné smlouvy s výjimkou případů, kdy k tomu byl písemně > >zmocněn nebo písemně pověřen a takové pověření nebo plná moc byly > >adresátovi tohoto emailu případně osobě, kterou adresát zastupuje, > >předloženy nebo jejich existence je adresátovi či osobě jím zastoupené > >známá. > > > >This e-mail and any documents attached to it may be confidential and > >are intended only for its intended recipients. > >If you received this e-mail by mistake, please immediately inform its > >sender. Delete the contents of this e-mail with all attachments and its > >copies from your system. > >If you are not the intended recipient of this e-mail, you are not > >authorized to use, disseminate, copy or disclose this e-mail in any > >manner. > >The sender of this e-mail shall not be liable for any possible damage > >caused by modifications of the e-mail or by delay with transfer of the > >email. > > > >In case that this e-mail forms part of business dealings: > >- the sender reserves the right to end negotiations about entering into > >a contract in any time, for any reason, and without stating any > >reasoning. > >- if the e-mail contains an offer, the recipient is entitled to > >immediately accept such offer; The sender of this e-mail (offer) > >excludes any acceptance of the offer on the part of the recipient > >containing any amendment or variation. > >- the sender insists on that the respective contract is concluded only > >upon an express mutual agreement on all its aspects. > >- the sender of this e-mail informs that he/she is not authorized to > >enter into any contracts on behalf of the company except for cases in > >which he/she is expressly authorized to do so in writing, and such > >authorization or power of attorney is submitted to the recipient or the > >person represented by the recipient, or the existence of such > >authorization is known to the recipient of the person represented by > >the recipient. > >______________________________________________ > >R-help@r-project.org mailing list > >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. > > -- Frederic Ntirenganya Maseno University, Kenya. Mobile:(+254)718492836 Email: fr...@aims.ac.za https://sites.google.com/a/aims.ac.za/fredo/ [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list 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.