r - 如何告诉R6类如何使用方括号?

标签 r data.table r6

我有一个R6类,它具有data.table作为属性。假设它看起来像这样:

library(R6)
library(data.table)

foo <- R6Class(
  classname = 'foo',
  public = list(
    dt = NA,
    initialize = function(dt) {
      self$dt <- dt
    }
  )
)

set.seed(123)
dt <- data.table(col1 = rnorm(10), col2 = rnorm(10))

bar <- foo$new(dt)

我想这样做:
bar[<data.table stuff>]

做这个:
bar$dt[<data.table stuff>]

是否可以?

最佳答案

您可以为此使用S3类:

`[.foo` = function(x, ...) x$dt[...]

bar[col1 > 0]
#         col1       col2
#1: 1.55870831  0.4007715
#2: 0.07050839  0.1106827
#3: 0.12928774 -0.5558411
#4: 1.71506499  1.7869131
#5: 0.46091621  0.4978505

关于r - 如何告诉R6类如何使用方括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33424233/

相关文章:

r - 同一表内重叠日期时间的数量(R)

将 N/A 替换为 data.table 中的其他值会返回错误

r - R6 类的多重继承

r - 使用循环在 rmarkdown 中生成文本部分

r - 如何解决 beamer_presentation 中的错误,文件不存在?

从单个文本文件读取多个表?

r - data.table 中的快速存在

替换 data.table 观察;矢量方法

r - 有没有办法将 R6 对象分配给 S4 对象槽?

R, R6 运算符重载