4

持ってみましょう:

library(R6); library(data.table); library(xts)
Portfolio <- R6Class("Portfolio",
                     public = list(name="character",
                                   prices = NA,
                                   initialize = function(name, instruments) {
                                     if (!missing(name)) self$name <- name
                                   }
))

p = Portfolio$new("ABC")
DT = data.table(a=1:3, b=4:6)
X = xts(1:4, order.by=as.Date(1:4))

オブジェクト スロットにを割り当てdata.tableて外部データ テーブルを変更すると、オブジェクト スロットのデータ テーブルも参照によって変更されます。

p$prices = DT
p$prices
DT[a==1,b:=10] # modify external table
p$prices # verify that the slot data is modified by reference

で同様の実験をしましょうxts:

p$prices = X
p$prices
X["1970-01-03"] <- 10 # modify the external xts
p$prices # observe that modification didn't take place inside the object

この方法でオブジェクト スロット内にオブジェクトを割り当てるxtsと、 とは異なり、スロットと外部オブジェクトの間のリンクが壊れているように見えますdata.table

xts参照によって共有されていることを達成することは何とか可能ですか?

4

1 に答える 1