裏 RjpWiki

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

分かりやすくプログラミングしよう

2012年11月14日 | ブログラミング

kosugitti

「国語の試験の成績を A, B, C, D にする」ということですけど ifelse は面倒。cut も面倒。findInteval がよい。ついでに,途中結果を代入したりしないで,直接 factor 関数に引き渡す。

何回も,同じ変数名(しかも長い)を入力するのは面倒(間違っても直せばよいだけだけど)。あとでプログラムを読み直すときに長い名前はわずらわしい。longlongname と longlongname2 なんてあると,間違えるのが必至。

というようなことで,以下のように。

だいじなこと。「先生!わたし,80点なのに B になります」

分かりやすくプログラミングするとミスも減る。念のためにテストデータで正しい答えになることを確認。

> sample <- data.frame(kokugo = c(0, 1, 58:62, 68:72, 78:82, 98:100))
> sample$kokugo.class <- ifelse(sample$kokugo > 80, 1, ifelse(sample$kokugo > 70, 2, ifelse(sample$kokugo > 60, 3, 4)))
> sample$kokugo.class <- factor(sample$kokugo.class, labels = c("A", "B", "C", "D"))
> sample$kokugo.class2 <- factor(cut(sample$kokugo, breaks = c(-1, 59, 69, 79, 101)), labels = LETTERS[4:1])
> sample$kokugo.class3 <- factor(findInterval(sample$kokugo, c(60, 70, 80)), labels = LETTERS[4:1])
> sample
   kokugo kokugo.class kokugo.class2 kokugo.class3
1       0            D             D             D
2       1            D             D             D
3      58            D             D             D
4      59            D             D             D
5      60            D             C             C
6      61            C             C             C
7      62            C             C             C
8      68            C             C             C
9      69            C             C             C
10     70            C             B             B
11     71            B             B             B
12     72            B             B             B
13     78            B             B             B
14     79            B             B             B
15     80            B             A             A
16     81            A             A             A
17     82            A             A             A
18     98            A             A             A
19     99            A             A             A
20    100            A             A             A

 

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ダメ出し:オンラインヘルプ... | トップ | 関数言語の特性を生かしたプ... »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事