速度を求めるなら以下のように
> i <- 1:1000000
> system.time({
+ ans1 <- ifelse(i %% 15 == 0, "FizzBuzz", ifelse(i %% 3 == 0, "Fizz", ifelse(i %% 5 == 0, "Buzz", i)))
+ })
ユーザ システム 経過
3.214 0.141 3.334
> system.time({
+ ans2 <- i
+ l <- length(ans2)
+ ans2[1:(l%/%3)*3] <- "Fizz"
+ ans2[1:(l%/%5)*5] <- "Buzz"
+ ans2[1:(l%/%15)*15] <- "FizzBuzz"
+ })
ユーザ システム 経過
0.473 0.008 0.479
> all(ans1 == ans2)
[1] TRUE
※コメント投稿者のブログIDはブログ作成者のみに通知されます