OK. I've just read that a breakpoints object with "NA" means no significant structural breakpoint was found, which is fair enough. But then if you call summary() on that breakpoint object, it will report a breakpoint. Who to believe?!
Also, my independent variable is not time. I'm searching for a change in the relationship with an independent variable, so the "breakdate" terminology is inappropriate. I can deal with that. I simply extract the nth value from the sorted vector of independent variable that the breakpoints were built on. But the Fstat at that value (as far as I can tell) is not at the maximum. I thought the best breakpoint would be located at the value with the maximum F stat. Is that not the case?
EDIT: Here's how I got confused. I'm looking for breakpoints in a model Y~X, where X has a range of roughly 0 to 150. The summary() says there's a breakpoint at observation 511 (out of 910 data), corresponding to breakdate 0.56. But the value of X is 120 or so. So, I assumed (oops) that I should use the observation number and not the breakdate. And that was when that breakpoint didn't line up with the maximum F stat from Fstats. (But nor would a breakpoint at 0.56).
A similar investigation of a model where the X predictor has a range in 0 to 1 appears to yield more comprehensible outputs. The reported breakdate (interpreted as a value of the predictor) appears to line up with the FStat maximum. Is this a dangerous coincidence, or does breakpoints() require something of its predictor variable? And sorry, I don't know how I can attach a dataset to reproduce this. :-(