Ist es möglich, eine Funktion in R zu duplizieren und die Standardwerte eines Parameters in der duplizierten Funktion zu ändern? Zum BeispielR-Funktion duplizieren und ändern
myFunc <- function(param1 = 1) {
return(1+param1)
}
# Duplicate function and alter param1
myFunc2 <- some way to duplicate myFunc and alter param1=1 to param1=2
Hintergrund: Ich benutze rfe vom caret Paket für Merkmalsauswahl. Ich benutze rfFuncs als Funktion, aber ich möchte die Standardfunktion selectSize
durch die Funktion pickSizeTolerance
mit einem höheren Toleranzwert (2 oder 3) als die Standard-Toleranz (1,5) ersetzen. Hier ist ein Beispiel
# Create dummy data
trainData <- data.frame(a=runif(100), b=runif(100), c=runif(100), d=runif(100), e=runif(100), f=runif(100), g=runif(100), h=runif(100),i=runif(100),j=runif(100))
trainData$label <- factor(c(rep("Class A", 50), rep("Class B", 50)))
rfFuncs$selectSize <- pickSizeTolerance
ctrlRF <- rfeControl(functions = rfFuncs,
method = "cv",
number = 5,
verbose = F
)
# Do feature selection
rfProfile <- rfe(subset(trainData, select=-c(label)),
trainData[, "label"],
rfeControl = ctrlRF,
sizes = 1:10,
metric = "Accuracy"
)
'myPickSizeTolerance = function (..., tol = 3) pickSizeTolerance (..., tol = tol)' – Gregor
Ehrfürchtig @Gregor .. soo einfach. Ich weiß nicht, warum ich nicht daran gedacht habe. –