Rの関数を複製して、重複関数のパラメータのデフォルト値を変更することはできますか?例えば、R関数を重複して変更する
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
背景:私は、特徴選択のためのキャレットパッケージからrfeを使用しています。私は関数としてrfFuncsを使用しますが、selectSize
のデフォルトの値(1.5)より高い許容値(2または3)を持つ関数pickSizeTolerance
をデフォルトの値に置き換えます。ここでは関数は、あなたが書いたものである場合のparam1は、関数を呼び出すときに定義することができ、可変であるので、あなたはそれを複製する必要はありません例
# 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 =関数(...、TOL = 3)pickSizeTolerance(...、TOL = TOL)' – Gregor
恐ろしい@Gregor ..秀シンプル。なぜ私はそれを考えなかったのか分からない。 –