R (ve C uzantıları yazarken) hakkında daha fazla şey öğrenmeye çalışıyorum ve iyi bilinen bazı paketlerin kaynağını okumaya yardımcı olabileceğini düşündüm. Ben olarak tanımlanan rpart ile başlatmaya karar: Ben kaynağı yoluyla hızlı bir arama yaptımBir işlev parametresi, işlev gövdesinde belirtmeden nasıl kullanılabilir?
rpart <- function(formula, data, weights, subset,
na.action=na.rpart, method, model=FALSE, x=FALSE, y=TRUE,
parms, control, cost, ...)
ve formülü henüz ben bir şekilde rpart o parametreyi kullandığını biliyoruz yerde işlev gövdesinde sözü görmüyorum. Rpart'ın adı, işlev gövdesinde bulunmayan formülü nasıl kullanıyor?
m <- match.call(expand.dots = FALSE)
# ...
m[[1L]] <- as.name("model.frame")
m <- eval(m, parent.frame())
işlev, bu çağrıldığını öğrenmek için match.call
kullanır model.frame
tarafından çağrılan işlevi yerine aramayı değiştirir ve (aldığı parametrelerle eval
yoluyla çağırır: