「R で Excel っぽい色を出す」にて
excel.like.color <- function(n) {
n <- as.integer(n)
:
residue <- (n - 1) %% 6 + 1
quotient <- floor((n - 1) / 6)
という件があるが,整数定数,整数演算,演算順序を考えると以下の test2 で示すようにするのがよいだろう。
test <- function(n) {
n <- as.integer(n)
residue <- (n - 1) %% 6 + 1
quotient <- floor((n - 1) / 6)
return(c(i, residue, quotient))
}
test2 <- function(n) {
n <- as.integer(n)
quotient <- (n - 1L) %/% 6L
residue <- n - quotient * 6L
return(c(n, residue, quotient))
}
> for (i in 1:15) {
+ cat(test(i), " ", test2(i), "\n")
+ }
1 1 0 1 1 0
2 2 0 2 2 0
3 3 0 3 3 0
4 4 0 4 4 0
5 5 0 5 5 0
6 6 0 6 6 0
7 1 1 7 1 1
8 2 1 8 2 1
9 3 1 9 3 1
10 4 1 10 4 1
11 5 1 11 5 1
12 6 1 12 6 1
13 1 2 13 1 2
14 2 2 14 2 2
15 3 2 15 3 2