R でリストを関数に渡すにはどうすればいいですか? 質問する

R でリストを関数に渡すにはどうすればいいですか? 質問する

R でリストを関数に渡す方法に関する情報を見つけるのに苦労しています。

私は以前にもこのアプローチを使ったことがある。

plot(list(x=1,y=1))

しかし、次の例ではエラーが発生します。

foo <- function(a, b) c <- a + b
foo(list(a=1,b=1))

Error in foo(list(a = 1, b = 1)) : 
   argument "b" is missing, with no default

さらに、?function機能せず、help('function')リストを関数に渡す方法に関する情報も提供されません。

アップデート

明確に言うと、リストを単一の引数として使用する方法は理解していますが、関数の特性として複数の引数をリストとして渡すことができるという印象を持っていたため、混乱していました。この印象は間違っていたようです。むしろ、以下のコメントや回答で説明されているように、多くの関数はリストを処理するために特別に書かれています。

ベストアンサー1

do.callを使用する

foo <- function(a, b)  a + b

do.call(foo, list(a=1,b=1))

あるいは、

foo <- function(l) l$a + l$b

foo(list(a=1,b=1))

おすすめ記事