是否可以在R会话中重新加载带有本机扩展的R包?
我正在开发Rliblinear,它使用了几个C
函数。
如果我对软件包中的R代码进行了更改,则只需重新安装并重新加载即可;
$ R CMD build Rliblinear
$ R CMD INSTALL Rliblinear
然后放在
R
外壳中;> detach("package:Rliblinear", unload=TRUE)
> library(Rliblinear)
但是,除非重新启动
C
解释器,否则R
函数不会受到影响。有没有一种方法可以强制解释器重新加载共享对象
Rliblinear.so
? 最佳答案
这将列出您加载的动态链接库:
library.dynam()
这将在Rliblinear软件包中卸载
Rliblinear.*
。library(Rliblinear)
# ... run package ...
detach("package:Rliblinear", unload = TRUE)
library.dynam.unload("Rliblinear", system.file(package = "Rliblinear"))
您可以再次发出
library.dynam()
来检查它是否不再列出。