0
関数のパラメータと部分的に一致するリストを渡したいと思います。ここでPassing list of named parameters to function?関数のパラメータに部分的に一致するように引数のリストを渡すにはどうすればよいですか?
がmapply(FUN, ...)
を呼び出すと...
に一つずつ渡されるデータフレームの列を必要とする場合、(https://stackoverflow.com/a/15059219/2109289から取られた)の例である:
> df <- data.frame(x=c(1,2), y=c(3,4), z=c(5,6))
> df
x y z
1 1 3 5
2 2 4 6
> mapply(function(x,y) x+y, df$x, df$z)
[1] 6 8
私はここ
do.call
方法として同等の簡素化の構文を探しています
データフレームdf[, c("x", "z")]
を引数として渡すだけでいいのではないでしょうか?
例えば:
df <- data.frame(x=c(1,2), y=c(3,4), z=c(5,6))
do.call(function(x, y) mapply(function(x,y) x+y, x, y), unname(df[, c("x", "z")]))
# [1] 6 8
do.call(function(...) mapply(function(x,y) x+y, list(...)[[1]], list(...)[[2]]), df[, c("x", "z")])
# [1] 6 8
これを行う代わりに、do.call
に渡されるクロージャを作成するためのより良い方法はありますか?
または 'do.callを使用することになる( "+"、[C( "X"、 "Z")] DF)' – baptiste
@baptisteまたは 'Reduce( '+'、df [c( 'x'、 'z')]) ' – akrun
ありがとう、役に立つと思われますが、これがより一般的な機能をどのように保持するかはわかりません。すなわち、一般関数 'f < - function(x1、x2、x3、...)'に対して、 'f(x1、x2、arg_list)'のように呼び出すことができます。 – Alex