R 加载、分离、重新加载异常

R 加载、分离、重新加载异常,r,data.table,rodbc,R,Data.table,Rodbc,我正在连接、分离和重新连接RODBC和数据表。当我按此顺序对这些包执行此过程时,会出现以下错误: Error : .onLoad failed in loadNamespace() for 'data.table', details: call: address(x) error: object 'Caddress' not found 我正在使用这些软件包的最新版本。这是我的初始会话信息: R version 3.1.0 (2014-04-10) Platform: i386-w64

我正在连接、分离和重新连接RODBC数据表。当我按此顺序对这些包执行此过程时,会出现以下错误:

Error : .onLoad failed in loadNamespace() for 'data.table', details:
  call: address(x)
  error: object 'Caddress' not found
我正在使用这些软件包的最新版本。这是我的初始会话信息:

R version 3.1.0 (2014-04-10)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base    
示例

pkgs <- c('RODBC', 'data.table') # Note, c('data.table', 'RODBC') will work
for (pkg in pkgs) library(pkg, character.only=TRUE)
for (pkg in paste0('package:', pkgs)) detach(pkg, unload=TRUE, character.only=TRUE)
for (pkg in pkgs) library(pkg, character.only=TRUE)
pkgs这一点现在已在中修复。发件人:
添加了
.onUnload
方法以正确卸载
数据.table
的共享对象。由于共享对象的名称为“datatable.so”而不是“data.table.so”,因此,“分离”无法正确卸载。这就是该问题如此报道的原因。关闭。感谢马修·普劳德的报道


在R中,分离和重新加载从来不像我希望的那个样干净——长期以来,人们一直在抱怨设计的这一方面。也就是说,似乎在一般情况下,几乎不可能对代码进行工程设计,以便附加+分离可以让您精确地回到您开始的状态。我不能肯定。可能有一种方法可以调整包,使其干净地附着/分离。我能说的是,要做到这一点可能非常困难。我遇到问题的两个方面是(1)注销S4方法和(2)完成Rcpp对象。e、 除了@BenBolker的问题区域列表之外,还不能保证在分离提供S3方法的包时,即使是S3方法也会被注销。()(这些都不一定能解释您在上面介绍的案例中发生了什么。)如果您只是这样做:
require(RODBC);要求(数据表);PKG文件。