Trong khi kiểm tra mã của tôi, tôi phát hiện ra những điều sau đây: Nếu tôi gán một data.table DT1
để DT
và thay đổi DT
sau đó, DT1
thay đổi với nó. Vì vậy, DT
và DT1
dường như được liên kết nội bộ. Hành vi này có dự định không? Mặc dù tôi không phải là chuyên gia lập trình, điều này có vẻ sai với tôi và thử nghiệm nó với các biến R đơn giản hoặc data.frame
, tôi không thể tạo lại hành vi. Điều gì đang xảy ra ở đây?: = (vượt qua bằng cách tham khảo) điều hành trong gói data.table đổi một đối tượng bảng dữ liệu đồng thời
DF <- data.frame(ID=letters[1:5],
value=1:5)
DF1 <- DF
all.equal(DF1, DF)
[1] TRUE
DF[1, "value"] <- DF[1, "value"]*2
all.equal(DF1, DF)
[1] "Component 2: Mean relative difference: 1"
library(data.table)
data.table 1.7.1 For help type: help("data.table")
DT <- data.table(ID=letters[1:5],
value=1:5)
DT1 <- DT
all.equal(DT1, DT)
[1] TRUE
DT[, value:=value*2]
ID value
[1,] a 2
[2,] b 4
[3,] c 6
[4,] d 8
[5,] e 10
all.equal(DT1, DT)
[1] TRUE