1. ホーム
  2. r

[解決済み] lapply の FUN に複数の引数を渡す (その他 *apply)

2022-07-18 05:41:34

質問

関数に複数の引数を渡す場合について質問です。 lapplyR .

という構文でlapplyを使うと lapply(input, myfun); - というように定義すると、わかりやすいと思います。

myfun <- function(x) {
 # doing something here with x
}

lapply(input, myfun);

の要素と input として渡されます。 x の引数として渡されます。 myfun .

しかし、さらにいくつかの引数を myfunc ? 例えば、こんな風に定義されています。

myfun <- function(x, arg1) {
 # doing something here with x and arg1
}

の両方を渡す場合、どのようにすればよいのでしょうか? input 要素( x 引数として) と他の引数?

どのように解決するのですか?

ヘルプを見ると、引数のひとつである lapply は謎の ... . ヘルプの「引数」を見てみると、次のような行があります。

...: optional arguments to ‘FUN’.

というわけで、もう一方の引数を lapply の呼び出しに引数として含めるだけです。

lapply(input, myfun, arg1=6)

lapply であることを認識し arg1 が何をすべきかを知っている引数でないことを認識し、自動的にそれを myfun . 他のすべての apply 関数も同じことができます。

追記です。 この場合 ... を使うこともできます。例えば、次のような関数を書くとします。 plot を呼び出す関数を書き、関数呼び出しからプロットパラメータを変更できるようにしたいとします。各パラメータを関数の引数として含めることもできますが、それは面倒です。その代わりに ... を (関数とその中の plot の呼び出しの両方への引数として) 使用し、関数が認識しない引数は自動的に plot .