Ошибка в `setDT` из пакета` data.table`
Это похоже наsetDT
возвращает ошибку всякий раз, когда вы пытаетесь запустить ее на сохраненных данных вdatasets
пакет. Например
library(data.table)
setDT(CO2)
## Error in assign(name, x, parent.frame(), inherits = TRUE) :
## cannot change value of locked binding for 'CO2'
Самое странное, что если вы перезапуститеsetDT(CO2)
это будет работать
Итак, я посмотрел в исходном кодеsetDT
и попытался воспроизвести ошибку
x <- CO2
name <- as.character(substitute(x))
assign(name, x, parent.frame(), inherits = TRUE)
Который работал и не возвращал никакой ошибки. Я думаю, чтоparent.frame()
это то, что вызывает это, но я не могу понять, что происходит на заднем плане. Кроме того, я не могу понять, почемуsetDT(CO2)
не возвращает ошибку при втором запуске.
мойsessionInfo()
## R version 3.0.3 (2014-03-06)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
##
## locale:
## [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
## [4] LC_NUMERIC=C LC_TIME=English_United States.1252
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] data.table_1.9.2
##
## loaded via a namespace (and not attached):
## [1] plyr_1.8 reshape2_1.2.2 stringr_0.6.2 tools_3.0.3