R data.table中的全局静默分配

R data.table中的全局静默分配,r,data.table,xts,R,Data.table,Xts,我正在使用data.table中的几个时间序列及其特征 长格式,我想构造几种不同类型的xts 对象使用data.table语法。以下是我的想法: 一些初步数据 library(data.table) set.seed(1) DT <- data.table( dat = as.Date("2013-01-01") + rep(1:5, 2), a = c(1, -1), x = i <- rnorm(10), y = 2 * i + rnorm(10), z =

我正在使用data.table中的几个时间序列及其特征 长格式,我想构造几种不同类型的
xts
对象使用
data.table
语法。以下是我的想法:

一些初步数据

library(data.table)
set.seed(1)
DT <- data.table(
  dat = as.Date("2013-01-01") + rep(1:5, 2),
  a = c(1, -1),
  x = i <- rnorm(10),
  y = 2 * i + rnorm(10),
  z = 3 * i + rnorm(10))
事实上

> z.ts
               [,1]
2013-01-02 2.300730
2013-01-03 4.969685
2013-01-04 1.959377
2013-01-05 1.961270
2013-01-06 3.256254
如何使数据表中的此类赋值保持静默? 这是使用

x.ts <- y.ts <- z.ts <- NA
DT[a == 1,{
  x.ts <<- xts(x, order.by = dat)
  y.ts <<- xts(y, order.by = dat)
  }
]
DT[
  , list(sz = mean(z/x)), by = dat][
  , z.ts <<- xts(sz, order.by = dat)]
> z.ts
               [,1]
2013-01-02 2.300730
2013-01-03 4.969685
2013-01-04 1.959377
2013-01-05 1.961270
2013-01-06 3.256254
# 
x.ts <- y.ts <- z.ts <- NA
invisible(DT[a == 1,{
  x.ts <<- xts(x, order.by = dat)
  y.ts <<- xts(y, order.by = dat)
  }
])
invisible(DT[
  , list(sz = mean(z/x)), by = dat][
  , z.ts <<- xts(sz, order.by = dat)])
x.ts <- y.ts <- z.ts <- NA
DT[a == 1,{
  x.ts <<- xts(x, order.by = dat)
  y.ts <<- xts(y, order.by = dat)
  'Assigned y.ts and x.ts to global environment)'
  }
]
DT[
  , list(sz = mean(z/x)), by = dat][
  , {z.ts <<- xts(sz, order.by = dat)
      'assigned x.ts'}]