9. 『forを使うな』 第一弾
9
system.time({
vec <- seq1 + seq2
})
## user system elapsed
## 0.006 0.000 0.006
N <- 1000000
vec <- integer(N)
seq1 <- seq2 <- 1:N
system.time({
for(i in 1:N) vec[i] <- seq1[i] + seq2[i]
})
## user system elapsed
## 1.749 0.037 1.831
ベクトル化前
ベクトル化後
高速化の例
10. なぜ出来るか?
⇒ 関数がベクトル演算に対応しているから
10
sqrt(1:3)
## [1] 1.000000 1.414214 1.732051
iconv(c("あ", "い", "う"), to = "shift-jis")
## [1] "x82xa0" "x82xa2" "x82xa4"
できる例
できない例
Nippon::zen2han(c("1", "4", "16"))
## [1] "1416"
Warning message:
In if (Encoding(s) != "UTF-8") s <- iconv(s, from = "", to = "UTF-8") : the
condition has length > 1 and only the first element will be used