1
我試圖通過參考分配一個列我一個子集和data.table
返回值分配給另一個data.table
像這樣(例如玩具)後:拷貝()在data.table,R
> x <- data.table(a=1:10, b=11:20, c=21:30)
> x
a b c
1: 1 11 21
2: 2 12 22
3: 3 13 23
4: 4 14 24
5: 5 15 25
6: 6 16 26
7: 7 17 27
8: 8 18 28
9: 9 19 29
10: 10 20 30
> y <- x[a==1 | a == 2, list(a,b,c)]
> y[,d:=a+b]
Error in `[.data.table`(y, , `:=`(d, a + b)) :
It appears that at some earlier point, names of this data.table have been reassigned. Please ensure to use setnames() rather than names<- or colnames<-. Otherwise, please report to datatable-help.
我不我完全理解這個問題:返回的y
僅僅是一個「查看」到x
相同的內存,因此應該在參考設置一個列之前設置爲copy
x
?
感謝
你可以構造一個可重複的例子,並把它添加到你的問題? –
除了一個可重複的例子,請更新到data.table(1.8.2)的最新版本,以便我們都可以在同一頁面上獲得幫助。 –
剛剛更新了一個例子的問題。這是data.table版本1.8.1。不幸的是,我不能升級,但想象一下在1.8.2版本中也會出現這種情況。如果沒有,我會很高興作爲答案。 – Alex