我在 R 中使用 data.table 并得到非常不直观的行为:更改 data.table,例如,添加列“C”,更改已设置的变量的值,该变量存储之前的列名。
我希望nm保持为"A" "B",而不是更改为"A" "B" "C"。
这种行为有什么解释吗?
谢谢
> library(data.table)
data.table 1.12.8 using 16 threads (see ?getDTthreads). Latest news: r-datatable.com
> d <- data.table(A=1, B=2)
> (nm <- colnames(d))
[1] "A" "B"
> d[, C := 3]
> nm
[1] "A" "B" "C"
> sessionInfo()
R version 3.6.3 (2020-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.4 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so
locale:
[1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_AU.UTF-8 LC_COLLATE=en_AU.UTF-8
[5] LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8
[7] LC_PAPER=en_AU.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.12.8
Run Code Online (Sandbox Code Playgroud)