相关疑难解决方法(0)

通过引用分配到已加载的包数据集中

我正在创建一个使用a data.table作为数据集的包,并有一些函数,通过引用使用:=.

我已经构建了一个简单的包来演示我的 problem

 library(devtools)
 install_github('foo','mnel')
Run Code Online (Sandbox Code Playgroud)

它包含两个功能

foo <- function(x){
  x[, a := 1]
}
fooCall <- function(x){
  eval(substitute(x[, a :=1]),parent.frame(1))
} 
Run Code Online (Sandbox Code Playgroud)

DT使用创建的数据集(不是延迟加载)

DT <- data.table(b = 1:5)
save(DT, file = 'data/DT.rda')
Run Code Online (Sandbox Code Playgroud)

当我安装这个软件包时,我的理解是foo(DT)应该通过引用来分配DT.

 library(foo)
 data(DT)
 foo(DT)
   b a
1: 1 1
2: 2 1
3: 3 1
4: 4 1
5: 5 1

# However this has not assigned by reference within `DT`

DT
   b
1: 1
2: 2
3: 3 …
Run Code Online (Sandbox Code Playgroud)

r data.table

18
推荐指数
2
解决办法
671
查看次数

标签 统计

data.table ×1

r ×1