裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

ダメ出し:整数定数,整数演算,演算順序

2012年07月04日 | ブログラミング

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

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村