r-wakalangのおかげでベクトル引数に対応したseqっぽものが一瞬で出来上がりました。ありがとうございます
連続する数値をたくさん作ろうとコードを書いたら以下のように怒られた。
> seq(0, 1:15) Error in seq.default(0, 1:15) : 'to' は長さ 1 でなければなりません
世間はなんて辛いんだ。
そこで、↑が動くor等価な出力をする結果がほしいとr-wakalangで質問したら瞬時に3件も回答を得た素晴らしい!
そこで教えてもらった3つの書き方の中でも一番速い奴を使ってきたいので速度検証しておく。以下検証用のコード
library(microbenchmark) seq.numeric <- function(from, to) {sapply(to, function(i) seq.default(from, i))} microbenchmark( seq(0, 1:15), Reduce(c, 1:15, 0, accumulate=TRUE), lapply(1:15, seq, from=0), times=1000L)
その結果は・・・
> library(microbenchmark) > seq.numeric <- function(from, to) {sapply(to, function(i) seq.default(from, i))} > microbenchmark( + seq(0, 1:15), + Reduce(c, 1:15, 0, accumulate=TRUE), + lapply(1:15, seq, from=0), + times=1000L) Unit: microseconds expr min lq mean median uq max neval seq(0, 1:15) 57.850 62.983 73.20452 65.315 69.0480 1047.365 1000 Reduce(c, 1:15, 0, accumulate = TRUE) 20.061 22.861 29.18771 24.260 25.6600 1387.000 1000 lapply(1:15, seq, from = 0) 364.362 379.291 443.80815 394.220 410.5485 2639.172 1000
となった。従って、
Reduce(c, 1:15, 0, accumulate=TRUE)
と書くのが一番速そうだ。教えてくださった@kohskeさんに圧倒的感謝!