It appears to be a numerical precision issue introduced while computing the "end" value of a time series, if not already specified at ts() input parameter level.
You may want to download the R source code: https://cran.r-project.org/src/base/R-3/R-3.2.2.tar.gz and look into R-3.2.2\src\library\stats\R\ts.R, specifically at code block lines 52..64, where "end" is handled. Then look at block code 140-142 ts.R, where a comparison is performed in order to determine if the time series are overlapping. In your second scenario (b2, b3) it happens that: > tsps [,1] [,2] [1,] 2009.5833333333333 2009.6666666666667 [2,] 2009.6666666666665 2009.6666666666667 [3,] 12.0000000000000 12.0000000000000 > st <- max(tsps[1,]) > en <- min(tsps[2,]) > st [1] 2009.6666666666667 > en [1] 2009.6666666666665 And (st > en) triggers the "non-intersecting series" warning. That issue has origin inside the ts() function in the "end" computation based on start, ndata and frequency. What basically happens can be so replicated: start = c(2009, 8) end = c(2009,9) frequency=12 ndata=2 start <- start[1L] + (start[2L] - 1)/frequency start [1] 2009.5833333333333 end <- end[1L] + (end[2L] - 1)/frequency end [1] 2009.6666666666667 end <- start + (ndata - 1)/frequency end [1] 2009.6666666666665 Note the difference between the two "end" values above. As workaround, you can specify the "end" parameter in the ts() call. > b2 <- ts(data = c(10, 20), start = c(2009, 8), end = c(2009,9), frequency = > 12); > b2 Aug Sep 2009 10 20 > > b3 <- ts(data = matrix(data = 4:6, nrow = 1), start = c(2009, 9), end = > c(2009,9), frequency = 12); > b3 Series 1 Series 2 Series 3 Sep 2009 4 5 6 > > bb <- ts.intersect(b2, b3); > bb b2 b3.Series 1 b3.Series 2 b3.Series 3 Sep 2009 20 4 5 6 Hope this helps -- GG [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.