在复制的data.table中创建新列也会更改旧的data.table

时间:2014-10-24 18:28:32

标签: r data.table

当我更改数据集的复制版本时,我遇到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

0 个答案:

没有答案