2013-03-18 43 views
0

我有一列2列XTS,我想用第三個XTS來劃分每個XTS的第二列,並將結果存儲回第二列。我目前正在使用一個循環做到這一點:在沒有for循環的多變量XTS列表上劃分

for(i in 1:length(data)){ 
    data[[i]][,2] <- data[[i]][,2]/temp 
} 

temp是一列XTS,這是有時更長,在數據的XTS,有時沒有,但他們這樣做肯定重疊。

如何在沒有for循環的情況下執行此操作?

+0

那麼'data'是一個'xts'對象列表嗎? – alexwhan 2013-03-18 04:30:27

+0

你可以提供樣本數據嗎? – 2013-03-18 04:30:43

回答

1

沒有適當的樣本數據拍攝。如果您提供樣本數據,我會相應地更新答案。

對於時間序列,國際海事組織正確的劃分方式將是對應於相同時間戳的值。要做到這一點,你應該首先mergetempxts時間序列與你的列表對象的每個元素data,然後做分裂。爲此,您可以使用lapply和自定義功能div,如下所述。

div <- function(x) { 
    x <- merge(x,temp) 
    x[,2] <- x[,2]/x[,3] 
} 

lapply(X = data, FUN = div)