4
我有時間序列和值的數據幀。時間序列是從時代開始的秒數。這裏是頂級的幾個要素看怎麼樣在該數據幀在數據幀上的時間間隔搜索
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
我想某種間隔搜索功能的它接受作爲輸入時間戳說1342980889(+1中第一TS行),它應該返回1,2(行號)作爲輸出。基本上,我想找到兩個有時間戳的行,它們包含輸入時間戳1342980889.雖然使用「哪個」相對容易,但是我懷疑「哪個」做了矢量掃描,而且真正的數據幀是相當的大我想要使用二進制搜索。非常感謝
這很好。搜索是否發生在log(N)時間? – broccoli 2012-07-29 01:04:23
那麼,幫助頁面的詳細信息部分將討論複雜性。 – flodel 2012-07-29 01:15:21
對於要搜索的單個值,是,O(log(N))。更一般地說,如果你的第一個輸入是一個長度爲n的向量,那麼它就是O(n * log(N)),如果這個向量是排序的,那麼它就是O(n)。 – flodel 2012-07-29 11:00:35