データのお砂場(75) R言語、rivers、川のお名前をつけたい、名無しベクトルに名前を

Joseph Halfmoon

R言語所蔵のサンプルデータセットをABC順(大文字)優先で拝見させていただいております。今回は rivers とな。北米の主要河川の「長さ」のデータみたいです。長さ順に並べるくらいしかその処理を思いつかないのです。しかしデータは名無しの権兵衛、単なる数値の羅列です。川のお名前がありませぬ。

※「データのお砂場」投稿順Indexはこちら

今回のサンプルデータセット

例によって、サンプルデータセットの解説ページが以下に。なお今回は処理例などの記載は一切ないです(処理といっても何したら良いのかという感じかも。)

Lengths of Major North American Rivers

以前にも登場しましたが、このサンプルセットは以下の書籍に掲載されていたデータみたいです。北米ということでカナダの河川も入っているのだと思うのですが、米国の御本なので「当然」河川の長さの単位はマイルです。

World Almanac and Book of Facts, 1975, page 406.

上記の版は所持しておらんのですが、上記より10年ほど後の以下の版を所持しとります。40年以上前の御本なので、もともと悪かった紙質がかなり変色しております。

1986, SPECIAL EDITION

上記の page 545 に元データと思われるものが記載されております。単なる長さだけではなく、河川名およびその水源もしくは分流、合流点、河口の地名などが記載されています。まあ地図みておいかければどこからどこまでの長さであるのかはだいたい追いかけられるようになっとります。この辺の配慮は嬉しい。

まずは生データ

生データをロードしてみると、一切の付加的データのない141要素の数値ベクトルが現れました。こんな感じ。RiversRawData

一応、サマリをとってみると、135マイル(217km)から3710マイル(5971km)までの河川が含まれておるようです。summary_rivers

しかし、河川のお名前など一切見当たりません。

一応、長さでソートして dotchart 化してみました。操作が以下に。dotchart1_opr

結果プロットは以下に。dotchart1_plot

河川の長さは分かるのですが、お名前が無いのでなんだかな~なデータです。

せめて最長河川のお名前だけでもグラフに書きたい

元データと同じらしい本を所持しているので、数値を確認しつつ、お名前を拾っていけば、全データに河川名を付加することは不可能ではないです。しかし、ページの端っこ(書籍の「ノド」)近くまで印字されているデータなのでOCRかけても苦労するのは目に見えてます。手作業で141点も入力するのはパス。せめて最長河川のお名前だけでも記載しようと考えました。多分、ミシシッピ川だよね、きっと。ミシシッピってだいたいどう綴ればよいのだっけ?

まずは数値ベクトルの中でどこにあるのか調べておきました。summaryの結果から最大値は3710.0と分かっているので以下のようにしてみました。which

データ(長さ順でなく河川名のアルファベット順)では68番目なのね。

河川名だけ別に文字列のベクトルを作って dotchartのlabelsにそれを渡してもよいのですが、元データを「名前付き」のベクトルにしてしまうことにいたしました。1個の変数で持ち運びが楽そうだし。

ただし、names()でお名前をつけるときは、一度に全部与える必要があるみたいです。1個だけだとダメなのね。全部を入力したくないので、以下のようにしてみました。68番目がミシシッピーミズーリ川だと。

v0 <- rep("", length(rivers)-1)
v1 <- c("Mississippi-Missouri")
v2 <- append(v0, v1, after=67)
names(rivers) <- v2

ミシシッピの綴りは大丈夫か?難しいです。なお、元表の中にはミシシッピという名の河川がいくつもあるのですが、「最長」認定されているのは上流がミズーリ川でミシシッピ本流に合流後、メキシコ湾に向けて流れくだる経路みたいっす。ミズーリ川の水源はイエローストーン近くの山中のコンチネンタル・ディバイド付近みたいです。モンタナ州を東に流れくだるっと。知らんけど。

実際にプロットに記載するための操作が以下に。dotchart2_opr

プロット結果が以下に。最長河川のところだけお名前入ってます。dotchart2_plot

ダントツの3710マイル、5971kmかあ。長いデス。

データのお砂場(74) R言語、randu、線形合同法の「乱数は平面に落ちる」とな、ほんとだ へ戻る

データのお砂場(76) R言語、rock、石油貯留層の油層岩サンプル、特性測定結果とな へ進む