当我更改数据集的复制版本时,我遇到data.table
的奇怪行为。这是为我重现错误的代码:
library(data.table)
set.seed(02138)
data1 <- data.table(var1 = 1:10, var2 = sample(letters, 10))
data2 <- data1
data2[var1 == 3, var3 := 1]
data2[var1 != 3, var3 := 0]
当我打印出原始数据并复制data.tables时,我得到以下内容:
> data1
var1 var2 var3
1: 1 n 0
2: 2 p 0
3: 3 i 1
4: 4 k 0
5: 5 e 0
6: 6 d 0
7: 7 a 0
8: 8 x 0
9: 9 y 0
10: 10 b 0
> data2
var1 var2 var3
1: 1 n 0
2: 2 p 0
3: 3 i 1
4: 4 k 0
5: 5 e 0
6: 6 d 0
7: 7 a 0
8: 8 x 0
9: 9 y 0
10: 10 b 0
请注意,已在data.table的复制版本和旧版本中创建了新变量。我只想在新版本中使用它。这是怎么回事?
data.table版本:1.9.4
R版本:3.1.1
操作系统:Mac OS X Yosemite 10.10