1
の仮引数からのアクセスの選択肢は、関数の引数の選択肢にアクセスする方法はありますか?機能
noise <- function(animal = c("dog","cat","chicken","pig")){ # default animal is "dog"
animal <- match.arg(animal)
sound <- c("woof","meow","cluck","oink")[match(animal, c("dog","cat","chicken","pig"))]
sound
}
noise("chicken") # returns desired result
私は宣言から選択肢のベクトルにアクセスすることによりc("dog","cat","chicken","pig")
を再入力を回避したいと思い、(これを構成する)のようなもの:この愚かな例では
noise <- function(animal = c("dog","cat","chicken","pig")){
animal <- match.arg(animal)
sound <- c("woof","meow","cluck","oink")[match(animal, self.choices("animal"))]
sound
}
、ありがとう - それは実行時に評価なっているため、これは可能ですか?そのための関数を定義するとき、 'noise'、まだ定義されていないnoise'関数' ... – C8H10N4O2
私はそれが遅延評価のラッキーな結果だと思う:Rは、最初のスクリプトを解析し、時間によって、それはすでに体、それを評価しています関数のシグネチャを知っている – baptiste
ところで、おそらく関数内でこの情報を取得するための名前にとらわれない方法がありますが、 'sys.frame()'とその兄弟のどれが関係するかは決して思い出せません。 – baptiste