【发布时间】:2017-05-20 20:22:33
【问题描述】:
作为函数参数传递的不合格数据表是可以修改的,无需在修改时复制:
dt<-data.table(RowId=c('a','b','c','d'),x=0:3)
f<-function(adt){adt[,x:=4]}
f(dt)
dt
# RowId x
#1: a 4
#2: b 4
#3: c 4
#4: d 4
我想在一组受限制的行上保留此行为,如下所示:
f(dt[x>1])
dt
# RowId x
#1: a 0
#2: b 1
#3: c 4
#4: d 4
而不是必须在函数中嵌入限制或将限制作为要在函数中评估的参数传递。
有没有办法做到这一点?
如果不是,替换函数返回的副本中对应的dt 行的最简洁的方法是什么?
【问题讨论】:
标签: r data.table pass-by-reference