Rには、たとえば3つのパラメーターを受け取る関数がありますfoo(x,y,z)
。
関数を呼び出すと、実際には、の要素のリストと、の要素のx
リストy
が1つだけありz
ます。リストの場合、各要素Z
に適用したかったのですが、動作します。foo
mapply(foo, x, y, z)
ただし、z
はリストではないため、mapply(foo,x,y,z)
機能しません。
より具体的には、x
とyがそれぞれ3つの要素のリストである場合、以下は機能しますmapply(foo, x, y, list(z, z, z))
。
最初に3つの要素のリストを作成mapply
せsapply
ずに、組み合わせることができる方法はありますか?ただ再利用しz
たい!z
編集1:私は例を求められました:
mylist1 <- list(c(5,4), c(7,9), c(8,3))
mylist2<- list(c(2,3), c(6,7), c(10,11))
item3 <- matrix(data = 15, nrow = 3, ncol = 3)
foo <- function(x,y,z){
return(x[1]+y[2]+z[2,2])
}
次の作品:
> mapply(foo, mylist1, mylist2, list(item3,item3, item3))
[1] 23 29 34
以下は機能しません。
mapply(foo, mylist1, mylist2, item3)
Error in z[2, 2] : incorrect number of dimensions