R言語(表)

Rio-Channel 2011.6.2 OPEN Movie4

アニメ『Rio: Rainbow Gate』(2011)
あー、ベガス行きたい。

R言語です。今回は表です。
ナンバーズ3は、1994年ぐらいから始まってもう4751回みたいです。
私はナンバーズ3ミニをよく買いますが、ミニだと00~99の数字で、毎回100分の1の確率で当たります。00~99までの数字をランダムに4751回発生させると各番号はどれぐらいの頻度になるでしょう。まずはlinuxコマンドで頻度表を作ってみます。

takk@deb9:~/tmp$ seq 4751 | perl -pe 's/^.*$/int rand 100/e' | sort | uniq -c | awk '{print $2,$1}' | sort -n
0 52
1 44
2 53
3 49
4 37

(省略)

94 49
95 51
96 50
97 39
98 40
takk@deb9:~/tmp$

seq,perl,sort,uniq,awk。コマンドがたくさん使われるしコマンドが長いです。
R言語の表を使ってみます。

> numbers3 = sample(0:99,4000,TRUE)
> numbers3
   [1] 91 37 14 65 19 87 14 65 62 75  9 69 42 63 69  9 56 43 17 44 46 48 23 93
  [25] 72 40 74 39 39 87  5 81 58 56  1 42  8 20 81  6 92 76 37 61 42 15 41  8
  [49] 51 98 66 61 14 81 93 83 52 85 86 42 29 92 25  9 88  3 55 68 84 27 84 30
  [73] 18 80 48 42 77 57 10 60 79 34 42 23 16 35 65  4 87 10 32 43  0 71 10 25
 
(省略)

[4657]  5 32 44 22 84 64 93 36 51 16 65 81 10 39 78 15 95 58 36 68 72 45 48 46
[4681]  9 76 38 59 57 76 17 81 64 46 77 78 50 14 12 24 85 13 14 74 56 78  7 86
[4705]  0 72 19 28 90 27 52 19 20 76 82 75 39 77 95 56 58 30 37 69  0 50 45 96
[4729] 53 70 38 40 28 17 50 77 31 58 11 18 55 47 32 16 46 78 63 63 91 21 53
>

サンプルデータを作るのは1関数で済みました。
次に頻度表です。

> a = table(numbers3)
> a
numbers3
 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
44 46 40 49 44 45 51 46 30 47 48 41 60 46 56 37 45 41 42 42 51 57 38 53 57 51
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
43 45 46 42 43 48 64 47 53 52 47 52 48 66 46 41 45 49 50 49 47 47 57 42 37 47
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
54 45 45 45 52 41 53 45 45 59 54 50 51 44 40 60 55 41 45 50 46 51 49 44 59 40
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
40 42 40 57 35 49 45 64 44 32 57 55 48 40 53 46 45 45 51 45 46 49
>

これも1関数で済みました。なんて簡潔なんでしょう。
見栄えは悪いですが、0~99の番号の下の数字が出現頻度です。

データフレームの形にして確認してみます。

> (data.frame(a))
    numbers3 Freq
1          0   44
2          1   46
3          2   40
4          3   49
5          4   44

(省略)

96        95   45
97        96   51
98        97   45
99        98   46
100       99   49
>

R言語は統計解析をするツールなので、簡単にできて当然なのでしょう。

コメント

タイトルとURLをコピーしました