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

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


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

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

関連する記事

  • WindowsにRStudioをインストールする手順WindowsにRStudioをインストールする手順 WindowsにRStudioをインストールする手順についてお伝えいたします。 ファイルのダウンロード RStudioのインストールファイルをダウンロードするために、次のサイトに移動します。 RStudio – Open source and enterprise-ready professional software for […]
  • R言語 CRAN Task ViewsR言語 CRAN Task Views CRANに登録されているパッケージ数は膨大です。そこで、いくつかのグループにパッケージを分類し整理されたCRAN Tack Views というサイトがあります。ここでは、英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Bayesian(日本語訳) Bayesian […]
  • Ubuntu16.04でElectronの配布アプリケーションを作成する方法Ubuntu16.04でElectronの配布アプリケーションを作成する方法 Ubuntu16.04を用いて開発したElectronアプリケーションを配布に適したファイル群で出力する方法をお伝えします。 ここでは、サンプルアプリケーションとして、electron-quick-startを利用させていただき、配布のための環境構築からWindows用アプリケーションとして実行しているところまでをご紹介します。 環境 今回の作業環境を確認し […]
  • R .Rprofileを用いて外部パッケージの参照を変更する方法R .Rprofileを用いて外部パッケージの参照を変更する方法 RまたはR […]
  • MySQL データベース内のカラム数を確認する方法MySQL データベース内のカラム数を確認する方法 MySQLまたはMariaDBのデータベース内のカラム数を確認する方法をお伝えします。 サンプルデータベースを次のように準備します。 # データベース作成 CREATE DATABASE sample_database; # データベース指定 use sample_database; # テーブル作成 CREATE TABLE […]
R 関数の引数が省略記号(…)を持つかどうかを判定する方法