Gabor Grothendieck wrote:

Mark did not post his response so I don't know what it
is.

This is Mark's proposal. Sorry, I was speaking about it as if posted to the list.

# MAKE POSIXct OBJECTS FROM CHARACTER STRINGS
temp1 <- as.POSIXct(strptime("2007-02-02","%Y-%m-%d"))
temp2 <- as.POSIXct(strptime("2007-02-01","%Y-%m-%d"))

# TEMP1 AND TEMP2 ARE SORT OF NUMBERS BUT EACH UNIT IS ONE
# SECOND

result <- difftime(temp1,temp2)

# STILL NOT REALLY A NUMBER
print(result)
print(str(result))

# MAKE IT A NUMBER
numberresult <- unclass(result)
attributes(numberresult) <- NULL
print(numberresult)

How you do it may depend on your setup which was
not entirely clear from the question since it started out
as if the two series were the inputs and then seemed to be
assuming the time ranges were.

Ranges are the case study. I have a table with dates like these:

startProject    endProject
2006/12/01    2007/05/31
2007/02/01    2008/12/31
2007/02/01    2008/12/31
2007/02/01    2008/12/31
2007/02/01    2008/12/31
2006/11/22    2009/12/30
2003/01/01    2006/07/31
2004/12/28    2007/12/27
2005/12/23    2006/12/30
2008/01/01    2010/12/31
2005/12/23    2008/12/30
2005/12/23    2008/12/30

For each record, I need the value for a new variable (let's call it timeInCommon) that stores a numeric value: the number days that each range startProject:endProject intersects with a third range, let's call it t1:t2.
Here are a few possibilities assuming z1 and z2
from my prior post.  Depending on what you want
you may need to add 1.

diff(range(time(merge(z1, z2, all = FALSE))))

diff(range(intersect(time(z1), time(z2))))

r1 <- range(time(z1))
r2 <- range(time(z2))
pmin(r1, r2)[2] - pmax(r1, r2)[1]

The first one generalizes to N series immediately.  The
second does not but is slightly shorter (although abbreviation
of the first could get that one even shorter).  The last
reduces the series to time ranges and then operates on
those.

The second option generates directly the required numeric value. 5 days if we use the time series coming with your first message. My problem now is how to use it to populate this new timeInCommon variable for all and each records.

Thanks for your help,

Ricardo


--
Ricardo Rodríguez
Your XEN ICT Team

______________________________________________
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.

Reply via email to