Tüm bağımlılıkları olan bir paketi kaldırmaya çalışıyorum. Çalıştığım sorun, bağımlılıkları kaldırmak için verilen sıra. Bağımlılıklar özyineliyken, bağımlılık ağacında sadece aşağıdan yukarıya boşaltılabilirler.Bir paket ve tüm bağımlıları kaldırma
Bunu başarmak için R'de kolay veya doğal bir yol var mı?
eval_current <- function(expr, envir=parent.frame(), timeout=60){
#set the timeout
setTimeLimit(elapsed=timeout, transient=TRUE);
#currently loaded packages
currentlyattached <- search();
currentlyloaded <- loadedNamespaces();
on.exit({
#reset time limit
setTimeLimit(cpu=Inf, elapsed=Inf, transient=FALSE);
#try to detach packages that were attached during eval
nowattached <- search();
todetach <- nowattached[!(nowattached %in% currentlyattached)];
for(i in seq_along(todetach)){
try(detach(todetach[i], unload=TRUE, character.only=TRUE, force=TRUE));
}
#try to unload packages that are still loaded
nowloaded <- loadedNamespaces();
tounload <- nowloaded[!(nowloaded %in% currentlyloaded)];
for(i in seq_along(tounload)){
try(unloadNamespace(tounload[i]));
}
});
eval(expr, envir)
}
Ama sonuçlanır: ne bir ilk seferde Aşağıda ben başarmak istiyorum
> eval_current({library(ggplot2); qplot(rnorm(100));})
Error in unloadNamespace(tounload[i]) :
namespace ‘colorspace’ is imported by ‘munsell’ so cannot be unloaded
Error in unloadNamespace(tounload[i]) :
namespace ‘dichromat’ is imported by ‘scales’ so cannot be unloaded
Error in unloadNamespace(tounload[i]) :
namespace ‘grid’ is imported by ‘gtable’ so cannot be unloaded
Error in unloadNamespace(tounload[i]) :
namespace ‘labeling’ is imported by ‘scales’ so cannot be unloaded
Error in unloadNamespace(tounload[i]) :
namespace ‘munsell’ is imported by ‘scales’ so cannot be unloaded
Ben killall R; Bunun yerine R'. Süreçler ucuzdur. –
Haha evet, bu zaten bir pencereye özel bir çözüm. Unix'te gerçekten sadece geçici bir çatal kullanabiliriz. – Jeroen
Her sene, bir Windows siğil çevresinde mühendislik geçirdiğinizde, Deity bir yavruyu öldürür. Sadece yapma. –