データのお砂場(51) R言語、Discoveries、複数年ある最小値の年を知る

Joseph Halfmoon

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件の「偉大な発明と発見」の件数が年毎にならべられてます。discoveriesRawdata

今回の解説ページに、処理例の記載はあったのですが、単にプロットしているだけでした。こんな感じ。discoveriesPlot

といいつつ、プロット例のコードを見ていて気付きました。プロットに以下の引数を与えると、軸のメモリのラベルが常に水平になるのですな。

las=1

いままで、「成り行き」(デフォルトの0)でプロットしていたので、Y軸はいつも90度ローテイトしてました。las=1の方が見やすいです。

最大、最小の年

上のグラフを見ると、1880年代に最大値を付けた後、その後ダラダラ下がっていっている感じもします。そんなことは無いような気がしないでもないのだけれど、編纂した人が何を「great」として認識したかどうかだからな~

とりあえず最大値をつけた年を知りたいと思いました。手順が以下に。discoveriesMax

ただ、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も求めてみるかと。どうような方法でやってみると以下のようです。discoveriesMin

グラフを見ると、MIN値 0 を与える年は何年もあるのだけれど、which.minで見つかるのは「最初の」1件だけでした。1862年。他にもある、0件の年を列挙するにはどうしたらよいか?

調べてもなかなか良い方法が見つからなかったので、以下のホームページで紹介されていた方法を適用してみることにいたしました。ただ、以下の方法は “ts” には適用できなかったので、時系列データをベクトル型に変換するという力技でやっています。

Find Indices of Multiple Maxima & Minima in R (2 Examples)

手順が以下に。discoveriesMinMulti

これにて、0件の年をすべて列挙できました。なんだかな~。でも求まったからいいか。

データのお砂場(50) R言語、crimtab、スチューデントの「t分布」登場 へ戻る

データのお砂場(52) R言語、esoph、食道がんの症例対処研究とな? へ進む