SchemeのapplyはRではdo.callらしいです

Rのapplyはmapだなというのは、分かってきたんだけど。

do.call関数とは

例を見えば分かるかな。第二引数はlistじゃないといけないらしい。

> f<-function(x1,x2=1)x1+x2
> unlist(list(1:3,4:6))
[1] 1 2 3 4 5 6
> f(unlist(list(1:3,4:6)))
[1] 2 3 4 5 6 7
> do.call("f",list(1:3,4:6))
[1] 5 7 9
> do.call(function(x){x+100},list(1:10))
 [1] 101 102 103 104 105 106 107 108 109 110
> do.call(function(x){paste("No:",as.character(x),sep="")},list(1:10))
 [1] "No:1"  "No:2"  "No:3"  "No:4"  "No:5"  "No:6"  "No:7"  "No:8"  "No:9" 
[10] "No:10"
# mapply(function(x){paste("No:",as.character(x),sep="")},1:10)
# 前回はこれでやっていた http://d.hatena.ne.jp/syou6162/20080521/1211321228