我有希望的直接問題。我有一個xts
對象有點類似以下內容:使用R中的XTS在同一天執行操作
| MarketPrice |
----------------------------------------
2007-05-04 10:15:33.546 | 5.32 |
----------------------------------------
2007-05-04 10:16:42.100 | 5.31 |
----------------------------------------
2007-05-04 10:17:27.546 | NA |
----------------------------------------
2007-05-04 10:20:50.871 | 5.35 |
----------------------------------------
2007-05-04 10:21:38.652 | 5.37 |
基本上,我想馬上一時間之前找到MarketPrice
指數,同時ommitting NA
值。比方說,我們從2007-05-04 10:20:50.871
開始,在對象中索引爲4。因此,這意味着緊接此時間之前的市場價格是5.31
,其對象中的指數爲2。爲了完成這個任務,我已經寫了類似如下的功能:
MPFunction <- function(t,df){
ind <- t
while(t>1){
t=t-1
if ((index(df[t]) != index(df[ind])) && !(is.na(df[t,"MarketPrice"]))) {
return(t)
}
}
}
而這個執行,因爲在IF語句檢查的首要條件,以確保在xts
對象的索引時代任務是不同的,第二個條件檢查以確保MarketPrice
列中沒有NA
值。
但是,我現在遇到了一個問題,當我看了幾天。比方說,我現在有一個xts
對象如下:
| MarketPrice |
----------------------------------------
2007-05-03 16:59:58.921 | 5.32 |
----------------------------------------
2007-05-04 10:12:27.546 | NA |
----------------------------------------
2007-05-04 10:20:50.871 | 5.35 |
----------------------------------------
如果我在指數3(即當時2007-05-04 10:20:50.871
)開始,然後,如果我希望能夠找到在此時間之前不會有NA
第一個索引值在MarketPrice
列中,它將轉到索引1,即2007-05-03 16:59:58.921
。但問題是這是在不同的一天,我想確保我只在同一天提取MarketPrice
值的索引。
基本上,我想知道在IF聲明中是否可以對我的MPFunction
進行快速修改,這將允許我避免在前一天找到MarketPrice的指數。另外,我不希望白天將對象拆分,因爲如果我這樣做會使事情變得複雜。如何解決這個問題(例如使用strptime
函數來檢查日期等),但這些都是耗時的方法,所以我希望找到一種方法,這個方法是非常多的更快,所以如果有人有任何想法,我會很感激。提前致謝。