0
不合格的數據表,作爲函數的參數傳遞,不帶複製修改的修改:在「R」函數參數數據表中修改時禁止複製?
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
行對應於從函數返回的副本中行的最簡約的方法是什麼?
爲什麼會是任何比第一種情況下,這是目前允許更危險? – user3673
如果函數修改甚至初始化多個列,該怎麼辦? – user3673
你說得對,它並不比第一種情況更危險。如果你想要一個修改多個列的函數看看[這裏](http://stackoverflow.com/questions/11308754/add-multiple-columns-to-r-data-table-in-one-function-調用#11308946) – DJJ