0

xts オブジェクト xts_IndData3 には、金融商品のポジション サイズを記録する PositionSize プロパティと、他の 2 つのプロパティが含まれています。NewEntrySize は >= 0 です。NewExitSize は <= 0 です。他の場所で説明した xts エラーを回避するために、以下のコードをまとめました。私が回避しようとしたエラーは、同じ式内で 2 つの異なる xts 行 ID を参照することに関係しています。それでも、以下のコードを機能させることができません。よろしくお願いします。

編集済み... xts オブジェクトをデータ フレームに変換しました。これは、より明確に達成するために必要なことを実行する問題のあるデータと新しいコードです。

> str(TestData)
'data.frame':   12 obs. of  5 variables:
 $ DateTime                 : Date, format: "2012-07-27" "2012-07-27" "2012-07-27" ...
 $ NewEntrySize             : int  0 0 0 1 0 0 0 0 0 0 0 0...
 $ NewExitSize              : int  0 0 0 0 0 0 0 0 0 -1 0 0...
 $ PositionSize             : int  0 0 0 1 0 0 0 0 0 -1 0 0...
 $ DesiredResultPositionSize: int  0 0 0 1 1 1 1 1 1 0 0 0...
>    
>    PositionSizeLag <- 0
>    PositionSizeLag <- as.integer( PositionSizeLag )
>    TestData$PositionSize <- as.integer( TestData$PositionSize )
>    TestData$NewEntrySize <- as.integer( TestData$NewEntrySize )
>    TestData$NewExitSize  <- as.integer( TestData$NewExitSize  )
>    for (i in 1 : nrow( TestData )) {
+       TestData[i]$PositionSize <- PositionSizeLag              +
+                                    TestData[i]$NewEntrySize +
+                                    TestData[i]$NewExitSize
+       PositionSizeLag <- TestData[i]$PositionSize
+    }
Error in `$<-.data.frame`(`*tmp*`, "PositionSize", value = numeric(0)) : 
  replacement has 0 rows, data has 12
> 

データ フレームを xts オブジェクトに変換しました。オブジェクトの xts バージョンでの dput(head(xts_TestData)) の出力を次に示します。

> dput(head(xts_TestData))
structure(c("2012-07-27", "2012-07-27", "2012-07-27", "2012-07-27", 
"2012-07-27", "2012-07-27", "0", "0", "0", "1", "0", "0", "0", 
"0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", 
"0", "1", "1", "1"), class = c("xts", "zoo"), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", index = structure(c(1343347200, 
1343347200, 1343347200, 1343347200, 1343347200, 1343347200), tzone = "UTC", tclass = "Date"), .Dim = c(6L, 
5L), .Dimnames = list(NULL, c("DateTime", "NewEntrySize", "NewExitSize", 
"PositionSize", "DesiredResultPositionSize")))
> 
4

1 に答える 1