Pesquisa de intervalo em um quadro de dados

Eu tenho um quadro de dados de séries temporais e valores. As séries temporais são segundos da época. Veja como os primeiros elementos aparecem nesse quadro de dados

val = seq(1,19)
ts = seq(1342980888,1342982000,by=60)
x = data.frame(ts = ts,val = val)
head(x)

      ts val
1 1342980888   1
2 1342980948   2
3 1342981008   3
4 1342981068   4
5 1342981128   5
6 1342981188   6

Eu gostaria de algum tipo de função de busca de intervalo que recebe como entrada um registro de data e hora 1342980889 (+1 o ts na primeira linha) e deve retornar 1,2 (o número da linha) como saída. Basicamente, eu quero encontrar as duas linhas que possuem data e hora que suportam a data e hora de entrada 1342980889. Embora isso seja relativamente fácil de usar usando "which", eu suspeito "o que" faz uma varredura vetorial e como o quadro de dados real é bastante grande eu quero fazer isso usando uma pesquisa binária. Muito obrigado antecipadamente

questionAnswers(1)

yourAnswerToTheQuestion