0

2列のXTSのリストがあり、各XTSの2番目の列を3番目のXTSで除算し、結果を2番目の列に保存したいと思います。私は現在、これを行うためにforループを使用しています:

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

tempは単一列のXTSであり、データ内のXTSよりも長い場合もありますが、そうでない場合もありますが、確実に重複しています。

forループなしでこれを行うにはどうすればよいですか?

4

1 に答える 1

1

適切なサンプルデータなしで撮影。サンプルデータを提供していただければ、それに応じて回答を更新します。

時系列、IMOの場合、除算を行う正しい方法は、同じタイムスタンプに対応する値になります。これを行うには、最初にリストオブジェクトの各要素を含むxts時系列を使用してmergeから、除算を実行する必要があります。これを行うには、以下に定義されているカスタム関数を使用できます。tempdatalapplydiv

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

lapply(X = data, FUN = div)
于 2013-03-18T04:55:41.597 に答える