Hi, Does anybody know why get I this kind of strange situation: Browse[2]> hcEnd [1] "2009-03-29 06:30:00" Browse[2]> class(hcEnd) [1] "POSIXlt" "POSIXt" Browse[2]> is.na(hcEnd) [1] TRUE This issue is the source of my all issues in my program, Thanks for your help -- View this message in context: http://r.789695.n4.nabble.com/strange-behaviour-of-POSIXlt-POSIXt-object-tp4418115p4418115.html Sent from the R help mailing list archive at Nabble.com.
strange behaviour of "POSIXlt" "POSIXt" object
8 messages · ikuzar, michael.weylandt at gmail.com (R. Michael Weylandt, Curt Seeliger +3 more
Can you dput(hcEnd) and give a snippet of the code that generates it? Michael
On Feb 24, 2012, at 12:57 PM, ikuzar <razuki at hotmail.fr> wrote:
Hi, Does anybody know why get I this kind of strange situation: Browse[2]> hcEnd [1] "2009-03-29 06:30:00" Browse[2]> class(hcEnd) [1] "POSIXlt" "POSIXt" Browse[2]> is.na(hcEnd) [1] TRUE This issue is the source of my all issues in my program, Thanks for your help -- View this message in context: http://r.789695.n4.nabble.com/strange-behaviour-of-POSIXlt-POSIXt-object-tp4418115p4418115.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ 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.
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20120224/fa4f56f7/attachment.pl>
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20120224/85b91fa1/attachment.pl>
2 days later
Hi,
I do not know what part of my code should I post here (I use large size of
data, the loop "for" contains many lines). The situation is difficult to
post here, but I hope these lines would be useful for help:
hcEndDateTmp = userDateStart
if((hcStartTime<="23:59") & (hcEndTime >= "00:00")){
hcEndDateTmp$mday = userDateStart$mday + 1
}
hcEndDate = strftime(hcEndDateTmp, "%Y-%m-%d")
hcStart = ""
hcEnd = as.POSIXlt(paste(hcEndDate, hcEndTime))
for(rowNum in 1:nbJour){
...
hcStart = as.POSIXlt(ecs$startAt[[rowNum]])
ecsInterval2 =
datePower[(datePower$DateTime>=hcStart)&(datePower$DateTime<=hcEnd), ]
...
hcEnd$mday = hcEnd$mday + 1
cat("DEBUG: rowNum=", rowNum, "is.na(hcEnd)=", is.na(hcEnd), "\n")
}
the two last lines are very important. It yields:
DEBUG: rowNum= 1 is.na(hcEnd)= FALSE
DEBUG: rowNum= 2 is.na(hcEnd)= FALSE
DEBUG: rowNum= 3 is.na(hcEnd)= FALSE
DEBUG: rowNum= 4 is.na(hcEnd)= FALSE
DEBUG: rowNum= 5 is.na(hcEnd)= FALSE
DEBUG: rowNum= 6 is.na(hcEnd)= FALSE
DEBUG: rowNum= 7 is.na(hcEnd)= TRUE
Browse[1]> hcEnd
[1] "2009-03-29 06:30:00"
Browse[1]> class(hcEnd)
[1] "POSIXlt" "POSIXt"
So, At the end of 7th iteration, hcEnd becomes NA (I guess because of
hcEnd$mday = hcEnd$mday + 1 ?!?). But It remains strange because the class
of hcEnd is here "POSIXlt" "POSIXt" (it should be "logical".!! Am I
wrong???)
Here is the version of R:
platform i386-pc-mingw32
arch i386
os mingw32
system i386, mingw32
status
major 2
minor 13.2
year 2011
month 09
day 30
svn rev 57111
language R
version.string R version 2.13.2 (2011-09-30)
thanks for your help
--
View this message in context: http://r.789695.n4.nabble.com/strange-behaviour-of-POSIXlt-POSIXt-object-tp4418115p4424214.html
Sent from the R help mailing list archive at Nabble.com.
is.na(POSIXltObject) can behave oddly if you manipulate
the fields of the POSIXlt object directly so as to
cause illegal combinations of values. E.g., the 35th
of February, 2009, is not considered an NA but the 36th
and above are:
> z <- as.POSIXlt("2009-02-25 06:30:00")
> for(i in 1:20){ z$mday <- z$mday + 1L ; cat(is.na(z), ": ");print(z)}
FALSE : [1] "2009-02-26 06:30:00"
FALSE : [1] "2009-02-27 06:30:00"
FALSE : [1] "2009-02-28 06:30:00"
FALSE : [1] "2009-03-01 06:30:00"
FALSE : [1] "2009-03-02 06:30:00"
FALSE : [1] "2009-03-03 06:30:00"
FALSE : [1] "2009-03-04 06:30:00"
FALSE : [1] "2009-03-05 06:30:00"
FALSE : [1] "2009-03-06 06:30:00"
FALSE : [1] "2009-03-07 06:30:00"
TRUE : [1] "2009-03-08 06:30:00"
TRUE : [1] "2009-03-09 06:30:00"
TRUE : [1] "2009-03-10 06:30:00"
TRUE : [1] "2009-03-11 06:30:00"
TRUE : [1] "2009-03-12 06:30:00"
TRUE : [1] "2009-03-13 06:30:00"
TRUE : [1] "2009-03-14 06:30:00"
TRUE : [1] "2009-03-15 06:30:00"
TRUE : [1] "2009-03-16 06:30:00"
TRUE : [1] "2009-03-17 06:30:00"
The print routine does not seem to consult is.na().
Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of ikuzar
Sent: Monday, February 27, 2012 2:41 AM
To: r-help at r-project.org
Subject: Re: [R] strange behaviour of "POSIXlt" "POSIXt" object
Hi,
I do not know what part of my code should I post here (I use large size of
data, the loop "for" contains many lines). The situation is difficult to
post here, but I hope these lines would be useful for help:
hcEndDateTmp = userDateStart
if((hcStartTime<="23:59") & (hcEndTime >= "00:00")){
hcEndDateTmp$mday = userDateStart$mday + 1
}
hcEndDate = strftime(hcEndDateTmp, "%Y-%m-%d")
hcStart = ""
hcEnd = as.POSIXlt(paste(hcEndDate, hcEndTime))
for(rowNum in 1:nbJour){
...
hcStart = as.POSIXlt(ecs$startAt[[rowNum]])
ecsInterval2 =
datePower[(datePower$DateTime>=hcStart)&(datePower$DateTime<=hcEnd), ]
...
hcEnd$mday = hcEnd$mday + 1
cat("DEBUG: rowNum=", rowNum, "is.na(hcEnd)=", is.na(hcEnd), "\n")
}
the two last lines are very important. It yields:
DEBUG: rowNum= 1 is.na(hcEnd)= FALSE
DEBUG: rowNum= 2 is.na(hcEnd)= FALSE
DEBUG: rowNum= 3 is.na(hcEnd)= FALSE
DEBUG: rowNum= 4 is.na(hcEnd)= FALSE
DEBUG: rowNum= 5 is.na(hcEnd)= FALSE
DEBUG: rowNum= 6 is.na(hcEnd)= FALSE
DEBUG: rowNum= 7 is.na(hcEnd)= TRUE
Browse[1]> hcEnd
[1] "2009-03-29 06:30:00"
Browse[1]> class(hcEnd)
[1] "POSIXlt" "POSIXt"
So, At the end of 7th iteration, hcEnd becomes NA (I guess because of
hcEnd$mday = hcEnd$mday + 1 ?!?). But It remains strange because the class
of hcEnd is here "POSIXlt" "POSIXt" (it should be "logical".!! Am I
wrong???)
Here is the version of R:
platform i386-pc-mingw32
arch i386
os mingw32
system i386, mingw32
status
major 2
minor 13.2
year 2011
month 09
day 30
svn rev 57111
language R
version.string R version 2.13.2 (2011-09-30)
thanks for your help
--
View this message in context: http://r.789695.n4.nabble.com/strange-behaviour-of-POSIXlt-POSIXt-
object-tp4418115p4424214.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________ 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.
So, how is the correct way to increment the day ? -- View this message in context: http://r.789695.n4.nabble.com/strange-behaviour-of-POSIXlt-POSIXt-object-tp4418115p4425206.html Sent from the R help mailing list archive at Nabble.com.
Hadley's lubridate package might be of some help to you. Michael
On Mon, Feb 27, 2012 at 11:40 AM, ikuzar <razuki at hotmail.fr> wrote:
So, how is the correct way to increment the day ? -- View this message in context: http://r.789695.n4.nabble.com/strange-behaviour-of-POSIXlt-POSIXt-object-tp4418115p4425206.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ 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.