Dear R Users, I did not get any reply on my question so I am re-asking. This time I am giving sample data: 1 60.3162 -13.5993 -0.4353 46.0938 0.1877 -0.194E-07 2 60.3713 -13.5992 -0.4423 46.1241 0.2057 -0.231E-06 3 60.3430 -13.5981 -1.6163 44.9048 0.2237 -0.270E-06 4 60.3227 -13.5970 -2.6258 43.8785 0.2213 -0.139E-06 5 60.3352 -13.5961 -2.5874 43.9238 0.2278 0.141E-06 ....... ..... ...... 1918 59.1785 -14.5851 0.3895 44.9850 -0.0021 0.141E-06 1919 59.1816 -14.5622 0.3933 44.9972 0.0155 0.139E-06 1920 59.1637 -14.5666 0.4420 45.0219 0.0172 0.138E-06 Column 1, is index of hours on 3 hourly interval and starts from 1 Jan 2009, 00 hrs and run till 240 days of 2009. I want to convert Column 1 of above data in the format, 'year' , 'month', 'day', 'hour' Kindly help. Thanks, Regards, Yogesh My question is below Dear R Users,> > I have model simulated data for 240 days. > > The day 1 is Jan 1, 2009, 00:00 hrs and then with 3-hourly interval and so > on. > > The time axis is 1,2,3,4......1920; so the total rows in the data are > 1920. > > How to convert above time axis in "year" "month" "day" "hour" format > > Great Thanks, > > regards, > Yogesh > > >-- Yogesh K. Tiwari (Dr.rer.nat), Scientist, Centre for Climate Change Research, Indian Institute of Tropical Meteorology, Homi Bhabha Road, Pashan, Pune-411008 INDIA Phone: 0091-99 2273 9513 (Cell) : 0091-20-25904452 (O) Fax : 0091-20-258 93 825 [[alternative HTML version deleted]]
Dear Yogesh, This will create a vector that I believe does what you want. x <- as.POSIXct(x = cumsum(c(0, rep(3*60*60, 1919))), origin = "2009-01-01") Let me see if I can explain the logic. In the innermost part, I multiply 3*60*60, or hours*minutes*seconds. You said they were three hour blocks so that is why I used three. This is because POSIXct, which I think is the format you will want to use, measures things in number of seconds since the origin (baseline point). Next, I repeat that number of seconds 1,919 times, and combine it with a 0 at the beginning. This creates a vector of length 1920 with 0, and then number of seconds in 3 hours. Next find the cumulative sum (this gets time moving forwards). Finally specify the origin (traditionally in R "1970-01-01"), but we know you want it to be "2009-01-01". The results from this are assigned to "x". Hope that helps, Josh On Thu, Sep 30, 2010 at 8:59 AM, Yogesh Tiwari <yogesh.mpi at googlemail.com> wrote:> Dear R Users, > I did not get any reply on my question so I am re-asking. > > This time I am giving sample data: > > ? ? 1 ? ? ? ?60.3162 ?-13.5993 ? -0.4353 ? 46.0938 ? ?0.1877 ?-0.194E-07 > ? ? 2 ? ? ? ?60.3713 ?-13.5992 ? -0.4423 ? 46.1241 ? ?0.2057 ?-0.231E-06 > ? ? 3 ? ? ? ?60.3430 ?-13.5981 ? -1.6163 ? 44.9048 ? ?0.2237 ?-0.270E-06 > ? ? 4 ? ? ? ?60.3227 ?-13.5970 ? -2.6258 ? 43.8785 ? ?0.2213 ?-0.139E-06 > ? ? 5 ? ? ? ?60.3352 ?-13.5961 ? -2.5874 ? 43.9238 ? ?0.2278 ? 0.141E-06 > ....... > ..... > ...... > ?1918 ? ? ?59.1785 ?-14.5851 ? ?0.3895 ? 44.9850 ? -0.0021 ? 0.141E-06 > ?1919 ? ? ?59.1816 ?-14.5622 ? ?0.3933 ? 44.9972 ? ?0.0155 ? 0.139E-06 > ?1920 ? ? ?59.1637 ?-14.5666 ? ?0.4420 ? 45.0219 ? ?0.0172 ? 0.138E-06 > > Column 1, is index of hours on 3 hourly interval and starts from 1 Jan 2009, > 00 hrs and run till 240 days of ?2009. > I want to convert Column 1 of above data in the format, 'year' , 'month', > 'day', ?'hour' > > Kindly help. > > Thanks, > > Regards, > Yogesh > > My question is below > > Dear R Users, >> >> I have model simulated data for 240 days. >> >> The day 1 is Jan 1, 2009, 00:00 hrs and then with 3-hourly interval and so >> on. >> >> The time axis is 1,2,3,4......1920; ? so the total rows in the data are >> 1920. >> >> How to convert above time axis in ?"year" "month" "day" "hour" format >> >> Great Thanks, >> >> regards, >> Yogesh >> >> >> > > > -- > Yogesh K. Tiwari (Dr.rer.nat), > Scientist, > Centre for Climate Change Research, > Indian Institute of Tropical Meteorology, > Homi Bhabha Road, > Pashan, > Pune-411008 > INDIA > > Phone: 0091-99 2273 9513 (Cell) > ? ? ? ? : 0091-20-25904452 (O) > Fax ? ?: 0091-20-258 93 825 > > ? ? ? ?[[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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. >-- Joshua Wiley Ph.D. Student, Health Psychology University of California, Los Angeles http://www.joshuawiley.com/
Here is an example of how I would do it. Just replace my ‘indx’ with the values in your first column. indx <- 1:13 t0 <- as.POSIXct(''2009-01-01 00:00'') tms <- t0 + (indx -1 )* 3 * 60 * 60> tms[1] "2009-01-01 00:00:00 PST" "2009-01-01 03:00:00 PST" [3] "2009-01-01 06:00:00 PST" "2009-01-01 09:00:00 PST" [5] "2009-01-01 12:00:00 PST" "2009-01-01 15:00:00 PST" [7] "2009-01-01 18:00:00 PST" "2009-01-01 21:00:00 PST" [9] "2009-01-02 00:00:00 PST" "2009-01-02 03:00:00 PST" [11] "2009-01-02 06:00:00 PST" "2009-01-02 09:00:00 PST" [13] "2009-01-02 12:00:00 PST" Your timezone will probably be different than mine, of course. -Don On 9/30/10 8:59 AM, "Yogesh Tiwari" <yogesh.mpi@googlemail.com> wrote: Dear R Users, I did not get any reply on my question so I am re-asking. This time I am giving sample data: 1 60.3162 -13.5993 -0.4353 46.0938 0.1877 -0.194E-07 2 60.3713 -13.5992 -0.4423 46.1241 0.2057 -0.231E-06 3 60.3430 -13.5981 -1.6163 44.9048 0.2237 -0.270E-06 4 60.3227 -13.5970 -2.6258 43.8785 0.2213 -0.139E-06 5 60.3352 -13.5961 -2.5874 43.9238 0.2278 0.141E-06 ....... ..... ...... 1918 59.1785 -14.5851 0.3895 44.9850 -0.0021 0.141E-06 1919 59.1816 -14.5622 0.3933 44.9972 0.0155 0.139E-06 1920 59.1637 -14.5666 0.4420 45.0219 0.0172 0.138E-06 Column 1, is index of hours on 3 hourly interval and starts from 1 Jan 2009, 00 hrs and run till 240 days of 2009. I want to convert Column 1 of above data in the format, ''year'' , ''month'', ''day'', ''hour'' Kindly help. Thanks, Regards, Yogesh My question is below Dear R Users,> > I have model simulated data for 240 days. > > The day 1 is Jan 1, 2009, 00:00 hrs and then with 3-hourly interval and so > on. > > The time axis is 1,2,3,4......1920; so the total rows in the data are > 1920. > > How to convert above time axis in "year" "month" "day" "hour" format > > Great Thanks, > > regards, > Yogesh > > >-- Don MacQueen Environmental Protection Department Lawrence Livermore National Laboratory 925 423-1062 [[alternative HTML version deleted]]