R言語のサンプル・データセットをABC順(大文字先)で端から眺めております。解説ページ見るとデータセット「Source」などにデータの出元が記載されとります。わざわざ調べたりしないのですが、今回は灯台下暗し。手元にSourceの本がありました(Editionは違うケド。)あったからといってなんのこっちゃなんだけれども。
※「データのお砂場」投稿順Indexはこちら
Discoveries
今回のサンプルデータセットの解説ページは以下です。
Yearly Numbers of Important Discoveries
1860年から1959年までの
“great” inventions and scientific discoveries
の件数のデータです。詳しいことは何も書いてません。ただ100年間の「件数」のみを列挙しただけのものです。出元は以下の本のようです。
The World Almanac and Book of Facts, 1975 Edition, pages 315 – 318.
ふっと通り過ぎようとして思い出しました(老人は最近のことはすぐに忘れるのですが、昔のことはよく覚えているのです。)1975年版ではないけれど手元にあったハズ。本棚の奥底から取り出したる1冊の写真をアイキャッチ画像に掲げました。
1986 118th YEAR SPECIAL EDITION
であります。何がSPECIALなんだか知らんけど。安売り版?
10年ほど後の版ですがDiscoveriesのページはありました。案の定、欧米視点です。登場する人と国は米国と西欧にかたよって(極東のアジア人から見ると)いる感じがぷんぷんです。時代も古いし昔の米国視点ならそんなもんか。よって何を件数に数えて何を数えないのかはAlmanacの編集視点なので恣意的なところがあるような気がします。でもま、サンプルデータセットは単なる数字の羅列です。
まずは生データ
データをロードすれば、”ts” 時系列データです。100年分で、合計310件の「偉大な発明と発見」の件数が年毎にならべられてます。
今回の解説ページに、処理例の記載はあったのですが、単にプロットしているだけでした。こんな感じ。
といいつつ、プロット例のコードを見ていて気付きました。プロットに以下の引数を与えると、軸のメモリのラベルが常に水平になるのですな。
las=1
いままで、「成り行き」(デフォルトの0)でプロットしていたので、Y軸はいつも90度ローテイトしてました。las=1の方が見やすいです。
最大、最小の年
上のグラフを見ると、1880年代に最大値を付けた後、その後ダラダラ下がっていっている感じもします。そんなことは無いような気がしないでもないのだけれど、編纂した人が何を「great」として認識したかどうかだからな~
とりあえず最大値をつけた年を知りたいと思いました。手順が以下に。
ただ、maxをとると最大値の値12がポロンと出てしまうので、最大値を与えるレコードを知るために which.maxを使いました。しかしこれではインデックス番号になってしまいます。結局time関数の引数にwhich.maxを渡して 1885年を得ました。
1885年、明治18年であります。ちょいと手元の1986 Editionでその年の発明を調べてみました。すぐに見つかったのは以下です(Aで始まるから。)
Adding Machine, Burroughs
バロースといえば、その末裔に現ユニシス社を持つ、コンピュータ業界の老舗であります(「IBMと7人の小人」の小人さんの一人だったはず。)こんな時代にルーツがあったのね。。。ちゃんと「記念的」なホームページもありましたです。
Burroughs Adding Machine Company
閑話休題。Rに戻ります。
さてMAX位置はわかったので、MINも求めてみるかと。どうような方法でやってみると以下のようです。
グラフを見ると、MIN値 0 を与える年は何年もあるのだけれど、which.minで見つかるのは「最初の」1件だけでした。1862年。他にもある、0件の年を列挙するにはどうしたらよいか?
調べてもなかなか良い方法が見つからなかったので、以下のホームページで紹介されていた方法を適用してみることにいたしました。ただ、以下の方法は “ts” には適用できなかったので、時系列データをベクトル型に変換するという力技でやっています。
Find Indices of Multiple Maxima & Minima in R (2 Examples)
これにて、0件の年をすべて列挙できました。なんだかな~。でも求まったからいいか。