ΠΡΠΈΠ²Π΅Ρ!
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ :
library(data.table)
f = function(flag = FALSE) {
dt1 = data.table(a = 1)
dt2 = data.table(a = 1)
dt3 = dt1[, .(a, b = 0)]
print(body(f))
if (flag) dt3[dt2, b := 999, on = "a"]
print(body(f))
return(invisible(dt3))
}
f(flag = FALSE)
f(flag = TRUE)
> f(flag = FALSE)
{
dt1 = data.table(a = 1)
dt2 = data.table(a = 1)
dt3 = dt1[, .(a, b = 0)]
print(body(f))
if (flag)
dt3[dt2, `:=`(b, 999), on = "a"]
print(body(f))
return(invisible(dt3))
}
{
dt1 = data.table(a = 1)
dt2 = data.table(a = 1)
dt3 = dt1[, .(a, b = 0)]
print(body(f))
if (flag)
dt3[dt2, `:=`(b, 999), on = "a"]
print(body(f))
return(invisible(dt3))
}
> f(flag = TRUE)
{
dt1 = data.table(a = 1)
dt2 = data.table(a = 1)
dt3 = dt1[, .(a, b = 0)]
print(body(f))
if (flag)
dt3[dt2, `:=`(b, 999), on = "a"]
print(body(f))
return(invisible(dt3))
}
{
dt1 = data.table(a = 1)
dt2 = data.table(a = 1)
dt3 = dt1[, .(a, b = 999)]
print(body(f))
if (flag)
dt3[dt2, `:=`(b, 999), on = "a"]
print(body(f))
return(invisible(dt3))
}
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ (: =) Π½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ»Π±ΡΡ Β«bΒ» (ΠΊΠΎΠ³Π΄Π° ΡΠ»Π°Π³ ΠΠ‘Π’ΠΠΠ) ΡΠ΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Β«fΒ» ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΡΡΠΎΠΊΠ΅ Β«dt3 = ...Β» (Β«b = 0 "Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π°" b = 999 "). Π’ΠΎΠ³Π΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΈ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π°Π³Π° FALSE.
ΠΡΠ²ΠΎΠ΄ sessionInfo () :
R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7600)
Matrix products: default
locale:
[1] LC_COLLATE=Russian_Russia.1251 LC_CTYPE=Russian_Russia.1251 LC_MONETARY=Russian_Russia.1251
[4] LC_NUMERIC=C LC_TIME=Russian_Russia.1251
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.12.3
loaded via a namespace (and not attached):
[1] compiler_3.5.1 tools_3.5.1 yaml_2.2.0
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡΡΠ΅Ρ! Π― ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π² v1.12.2.
@mattdowle , ΡΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΠΎΡΠ»Π΅ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ
ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ Π²ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΡΡΠΎ Π² ΡΡΠ½ΠΊΡΠΈΠΈ-ΠΎΠ±Π΅ΡΡΠΊΠ΅ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠΎΡ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
library(data.table)
value = 0
dt1 = data.table(a = 1)
dt2 = dt1[, .(a, b = ..value)]
dt2[1, b := 999]
print(value)
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ. ΠΡΠ΅ΡΠ° Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» ΠΎΡΠΈΠ±ΠΊΡ Π² ΡΡΡΠΎΠΊΠ΅ ΠΈ ΡΠ΄ΠΈΠ²ΠΈΠ»ΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°. Π’Π°ΠΊ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ. WIP ...
Π‘Π²ΡΠ·Π°Π½Π½ΡΠΉ # 3766. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @kirillmayantsev Π·Π° ΡΠΎ, ΡΡΠΎ Π½Π΅ ΠΎΡΠΊΠ°Π·Π°Π»ΠΈΡΡ ΠΎΡ Π½Π°Ρ!
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
@mattdowle , ΡΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΠΎΡΠ»Π΅ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ Π²ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΡΡΠΎ Π² ΡΡΠ½ΠΊΡΠΈΠΈ-ΠΎΠ±Π΅ΡΡΠΊΠ΅ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠΎΡ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: