Hi Daniel, How can I add an if conditiopn or for loop to implement this in my function?
ex: option1 : single date option2: date in 3 columns (year,moth,day) yday(Sys.Date()) yday(as.Date(paste(y,m,d,sep="-"))) Regards, Frederic. Frederic Ntirenganya Maseno University, African Maths Initiative, Kenya. Mobile:(+254)718492836 Email: fr...@aims.ac.za https://sites.google.com/a/aims.ac.za/fredo/ On Tue, Nov 4, 2014 at 3:20 PM, daniel <daniel...@gmail.com> wrote: > Frederic, > > Check the lubridate library. > > install.packages("lubridate") > library(lubridate) > yday(Sys.Date()) > d <- 4 > m <- 11 > y <- 2014 > yday(as.Date(paste(y,m,d,sep="-"))) > > Daniel Merino > > 2014-11-04 7:01 GMT-03:00 Frederic Ntirenganya <ntfr...@gmail.com>: > >> Dear All, >> >> I would like to make a function that create Day of the year column in a >> dataset. >> State of the problem: write a function that create a day column either >> from >> a single date column (string/or factors) or from date in 3 columns (year, >> month, day). >> >> I made the following function for a single date. I would like to add a >> condition for date in 3 columns (year, month, day). My data is daily >> climate data. >> #write a function that create a day column either from a single date >> column >> (string/or factors) >> #or from date in 3 columns (year, month, day). >> >> DOY=function(data){ >> >> #================================================================= >> #This function create day of teh year from a single date >> column(ex:2009-08-02) or/and >> #from the date in 3 columns (Year, month, Day). >> #================================================================ >> data$Rain=as.numeric(as.character(data$Rain)) >> dt=yday(data$Date) # single date of the data >> datelp= dt>59 & !leap_year(data$Date)# tell us that the date occurs >> during a leap year >> dt[datelp]=dt[datelp]+1 # add one for non leap_year >> cbind(data, dt) # combining columns of data >> conames(data)="DOY" # name of new column. ??I have a problem on how I >> can >> precise the column in gerenal. >> } >> >> ex: year month day Date Rain Tmin Tmax >> 1971 1 1 1971-01-01 0 8.2 15 >> 1971 1 2 1971-01-02 0 4.2 11 >> . . . . . . . >> . . . . . . . >> . . . . . . . >> >> Any ideal on how I can make this function is welcome. thanks! >> Frederic Ntirenganya >> Maseno University, >> African Maths Initiative, >> 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. >> > > > > -- > Daniel > [[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.