Paul Smith wrote:
> Dear All,
> 
> When one loads certain packages, some other dependent packages are
> loaded as well. Is there some way of detaching them automatically when
> one detaches the first package loaded? For instance,
> 
>> library(sqldf)
> Loading required package: RSQLite
> Loading required package: DBI
> Loading required package: gsubfn
> Loading required package: proto
> 
> but
> 
>> detach(package:sqldf)
>>
>> search()
>  [1] ".GlobalEnv"        "package:gsubfn"    "package:proto"
>  [4] "package:RSQLite"   "package:DBI"       "package:stats"
>  [7] "package:graphics"  "package:grDevices" "package:utils"
> [10] "package:datasets"  "package:methods"   "Autoloads"
> [13] "package:base"
> 
> The packages
> 
> RSQLite
> DBI
> gsubfn
> proto
> 
> were not detached.

  The danger here is that after attaching sqldf you might attach some 
other package that needs, say, DBI, then when your cleanup routine 
detaches DBI that other package dies because DBI isn't there.

  The way to do it would be to detach any packages that are only 
depended on by the package you are detaching. You'd have to call 
packageDescription("foo", fields="Depends") for currently attached 
packages to build the dependency tree and then work out which ones you 
can remove... There's a bit of recursive tree-walking in there, but it 
should be simple... Ummm...

Barry

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to