ある関数の引数に省略記号である三連ドット(…)を持つかどうかを判定する関数を作成しましたので共有いたします。

判定する関数は次になります。


is_dots <- function(func) {
  if (!is.function(func)) {
    stop("Argument is not a function.")
  }
  return(any(is.element(names(as.list(args(func))), "...")))
}

検証用に適当な関数を作成します。


sample_func1 <- function(a) {}
sample_func2 <- function(a, ...) {}

作成したis_dots()関数に検証用の関数を適用してみます。


> print(is_dots(sample_func1))
[1] FALSE

> print(is_dots(sample_func2))
[1] TRUE

うまく動いていることが確認できました。

関連する記事

  • CakePHP:プラグイン・パッケージ一覧CakePHP:プラグイン・パッケージ一覧 CakePHPのプラグイン・パッケージのサイトで公開されているプラグイン・パッケージの一覧をGoogle翻訳を使用させていただき機械的に翻訳したものとあわせてご紹介する。プラグイン・パッケージの情報は2017年04月01日時点のものであることに注意していただきたい。何かのお役に立てれば幸いだ。 1.3 2.x 3.x 3.x 2.x API […]
  • これだけは抑えておきたい安全性分析の基本これだけは抑えておきたい安全性分析の基本 安全性分析とは、主に貸借対照表上の数値から支払能力を測定する分析である。企業が倒産する主な原因は資金不足によって起こるため、様々な観点から資金の状況を把握する必要がある。 ここでは、安全性分析の代表的な指標をいくつか紹介する。 流動比率 流動比率とは、1年以内に資金化できる流動資産と1年以内に返済しなければならない流動負債との比率から支払能力をみる指標である。 […]
  • R言語 CRAN Task View:微分方程式R言語 CRAN Task View:微分方程式 CRAN Task View: Differential Equationsの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Karline Soetaert and Thomas Petzoldt Contact: karline.soetaert at […]
  • Eclipseにe(fx)clipseをインストールできない場合の対処方法Eclipseにe(fx)clipseをインストールできない場合の対処方法 Eclipseにe(fx)clipseをインストールできない場合の対処方法を備忘記録として残しておく。e(fx)clipseのインストール手順はこちらのサイトで確認できる。 Eclipse Kepler (4.3.x)で、以下のエラーが出てインストールできない場合は、 1 つ以上の必須項目が見つからないため、インストールを完了できません。 Software […]
  • Ubuntu TensorFlowのGPU版をpipでインスールする手順Ubuntu TensorFlowのGPU版をpipでインスールする手順 Ubuntu上で、TensorFlowのGPU版をpipでインストールする手順をお伝えする。 TensorFlowのバージョン0.6.0からPython3が使えるようになったので、Python3を用いることにする。 ここに記載されていることの大部分は、TensorFlowのDownload and […]
R 関数の引数が省略記号(…)を持つかどうかを判定する方法