Hi, I am computing some time differences. Using the linux version of R 2.7.1 And I am getting a strange result ( see below ) I need the difference in minutes. Actually looking for where it is NOT 15 minutes. Would anyone know why this could be happening? Or should I do this another way? Bill The script "k0.R" ==============a=read.table("buzwah005.txt") d=strptime(paste(a[,1]," ",a[,2]),"%m/%d/%Y %H:%M") tm=-24*60*as.numeric(as.POSIXlt("2007-1-1")-d) # time since midnight Jan 1 print(tm[2]-tm[1]) x=a[,3] diffs=round(tm[-1]-tm[-length(tm)]) not15=(1:length(diffs))[diffs!=15] print(not15) ============== The R session.... > > source("k0.R") [1] 15 [1] 2113 5686 15712 > class(d) [1] "POSIXt" "POSIXlt" > d[15711:15714] [1] "2007-11-04 01:34:00" "2007-11-04 01:49:00" "2007-11-04 02:04:00" [4] "2007-11-04 02:19:00" > d[15712]-d[15711] Time difference of 15 mins > d[15713]-d[15712] Time difference of 1.25 hours > d[15714]-d[15713] Time difference of 15 mins > >
Prof Brian Ripley
2008-Aug-14 15:16 UTC
[R] correct computation of timezones called 'strange' (was time difference bug?)
You haven't given us the 'at a minimum' information that the posting guide requested, so we don't know your timezone. But in America/Toronto on my F8 machine d <- "2007-11-04 01:30:00" dd <- as.POSIXct(d) c(dd, dd+3600) [1] "2007-11-04 01:30:00 EDT" "2007-11-04 01:30:00 EST" Note the change of timezone. Wikipedia says that is the right day for Canada ('from 2:00 a.m. LDT to 1:00 LST on the first Sunday in November since 2007'). Note that 01:34 is ambiguous that day (see ?as.POSIXct, surely part of the required homework). The N American late change in rules in 2007 means that DST changes can be unreliable in OSes, but this one seems to be correct. I do believe that you have failed to credit the careful work in getting this right in R. Perhaps these are not times in Ontario and you forgot to tell R that? On Thu, 14 Aug 2008, Bill Szkotnicki wrote:> Hi, > I am computing some time differences. > Using the linux version of R 2.7.1 > And I am getting a strange result ( see below ) > I need the difference in minutes. > Actually looking for where it is NOT 15 minutes. > Would anyone know why this could be happening? > Or should I do this another way? > > Bill > > The script "k0.R" > ==============> a=read.table("buzwah005.txt") > d=strptime(paste(a[,1]," ",a[,2]),"%m/%d/%Y %H:%M") > tm=-24*60*as.numeric(as.POSIXlt("2007-1-1")-d) # time since midnight Jan 1 > print(tm[2]-tm[1]) > x=a[,3] > diffs=round(tm[-1]-tm[-length(tm)]) > not15=(1:length(diffs))[diffs!=15] > print(not15) > ==============> > The R session.... >> >> source("k0.R") > [1] 15 > [1] 2113 5686 15712 >> class(d) > [1] "POSIXt" "POSIXlt" >> d[15711:15714] > [1] "2007-11-04 01:34:00" "2007-11-04 01:49:00" "2007-11-04 02:04:00" > [4] "2007-11-04 02:19:00" >> d[15712]-d[15711] > Time difference of 15 mins >> d[15713]-d[15712] > Time difference of 1.25 hours >> d[15714]-d[15713] > Time difference of 15 mins >> >> > > ______________________________________________ > 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. >-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
Reasonably Related Threads
- Fastest way to find the last index k such that x[k] < y in a sorted vector x?
- [AVX512BW] Nasty KAND issue
- pcie-expander-bus doesn't support pcie-pci-bridge and pcie-switch-upstream-port
- [X86][AVX512] RFC: make i1 illegal in the Codegen
- [AVX512BW] Nasty KAND issue