Kitaplığı normal olarak yükleyin ve tüm işlevleri paket ortamında (ve ad alanında) izleyin. Bunu yapmak için küçük bir yardımcı işlevi kullanacağız:
trap_funs <- function(env)
{
f <- sapply(as.list(env, all.names=TRUE), is.function)
for(n in names(f)[f]) trace(n, bquote(stop(paste("Script called function", .(n)))), where=env)
}
Örnek:
Bu ikinci açıklamada da tuzağa böyle
data.table::xxx()
olarak aramalar sağlamak için gereken
library(data.table)
trap_funs(as.environment("package:data.table"))
trap_funs(asNamespace("data.table"))
.
Örnek: Kod kesildi bu
> as.data.table(mtcars)
Tracing as.data.table(mtcars) on entry
Error in eval(expr, envir, enclos) : Script called function as.data.table
not edin.
İşlevlerin hangi paketten geldiğini bilmek istiyor musunuz? – Thomas
Aslında yapmak istediğim, kullanılmayan paketleri elimine etmek. Eski projelerin kodlarını yeniden kullandığım için, paketlerimi her zaman ekliyorum (ama asla almayan), ve kullanılmayan paketleri bulmak için bir çeşit ikilik yapabilirim, bu bir güçlük olurdu. İdeal olarak, gerçekte aranan şeyin bir yürütme sonrası çöküşünü alabilirim. –
Bu yardımlardan herhangi birini yapın: http://stackoverflow.com/questions/8761857/identifying-dependencies-of-r-functions-and-scripts ve http://stackoverflow.com/questions/17402735/between-function-possible -provizyon – Thomas