2020年09月01日(火曜日)
タイ都県別労働力統計ファイルを読み込む(その6)
ひとまずできた
77県中、76県について、読み込めるファイルを読み込んでデータセットをつくった。106,416行6列のデータセット。こうなると、とてもMSExcelで扱うことは困難。Rなり他にある統計解析パッケージで取り扱うよりないでしょう。
LFS項目名メモ。他にもあるけれど、共通する項目はだいたいこの通り。ほぼISO準拠。
- TotalLabourForce:タイ語はกำลังแรงงานรวม。「労働力調査」によるに近い。
- Persons, 15 years of age and over who during the survey week,
- worked for at least one hour for wages/salary, profits, dividends or any other kind of payment, in kind; or
- did not work at all or worked less than one hour but
- receives wage/salary, profits from business enterprise or farm during the period of absence; or
- not receive wage/salary, profits from business enterprise or farm during the period of absence but had regular jobs or business that they would be return to work.
- worked for at least one hour without pay in business enterprises or on farms owned or operated by household heads or members.
- Persons, 15 years of age and over who during the survey week,
- CurrentLabourForceTotal:タイ語はกำลังแรงงานปัจจุบัน。「労働力調査」による就業者に近い。LFS によれば、All persons 15 years of age and over who, during the survey week, were either employed or unemployed.
- Employed:タイ語はผู้มีงานทำ。「労働力調査」による就業者に近い。
- Unemployed:タイ語はผู้ว่างงาน。「労働力調査」による完全失業者数に近い。LFS英語解説によれば、Persons, 15 years of age and over who during the survey week did not work even for one hour, had no jobs, business enterprise or farms of their own. Persons in this category include :
- those who had been looking for work, applying for a job or waiting to be call to work during the last 30 days before interview’s date.
- those who had not been looking for work during the last 30 days before interview’s date but available for work during the last 7 days before interview’s date.
- Seasonal:タイ語はกำลังแรงงานที่รอฤด。季節労働者ということになっている。しかし、季節労働者以外にも季節変動があることは以前報告した内容で明らかである。LFSによる定義は、Persons 15 years of age and over, who during the survey week, were neither employed nor unemployed, but were waiting for the appropriate season, being persons who usually worked without pay on farms, or in business enterprises engaged in seasonal activities owned or operated by the head of the household or any other member of the household.
- NotinLabourForceTotal:タイ語はผู้ไม่อยู่ในกำลังแรงงาน。「労働力調査」による非労働力人口に近い。
- HouseHold:タイ語はทำงานบ้าน。「労働力調査」による主婦に近い。
- Students:タイ語はเรียนหนังสือ。「労働力調査」による学生に近い。
- Others:タイ語はอื่น ๆ。「労働力調査」によるその他に近い。
最後までみつかるおかしなファイル
- 隠されたシート:見た目にはまったく異常がないファイルが存在する。しかし、読み込むとエラーが発生するうえ、読み込まれた内容と目に見える内容とが異なる。たいていは目次が書き込まれている。原因は、MSExcelがシートを非表示にする機能を持っていること。このような機能が実装される理由は不明。表示させないとわからないから、表示させる。表示させたら、シートは削除する。
次の課題
- バンコク都をどうにかする:バンコク都データは、2044(2001)年以降しか電子化されたデータをダウンロードできない。県別データならば、2037年あたりからダウンロードできる。場所は県別データダウンロードページではなく、地方別データダウンロードページ。幸い、一定の傾向があるようで、読み込み自動化はさほど難しくないでしょう。以前のデータは、冊子体から採取しましょうか。
- 残ったファイルを読み込む:フォーマットがおかしい、なぜか読み込めない、その他ファイルが900強ある。フォーマットのおかしさにはある傾向があるから、傾向毎に集めて読み込む。
- データがない都県についてデータを集める:フォーマットがおかしいデータのうち、文字化けしたファイルはなにもわからない。ファイル名から年次だけはわかるけれど、中身はわからない。こういうデータは、NSOに出かけて内容を埋めないといけない。だからタイに出張が必要。
- 年次や日付、都県名を付加する:時系列データであるし、地理空間データでもある。現在のデータには、年次も県名も入っていない。ただ、ファイル名として年次と都県名の一部が収納されるから、年次データと都県名を変数として加えることはさほど面倒でもあるまい。
- その他:作図する、記述統計量を算出する、モデルを組む。やることは多い多い。9月中には終わらせないと。
あぁ魚釣り
イカメタル:オモリグを覚えた
先週、イカメタルにでかけた。今期3度目。釣果は16杯。船内はだいたい不調であったから、だいたいこのくらいであろう。おそらく今期はこれで終わり。船中、オモリグに自作仕掛けをつないで使った。結果は良好、メタルスッテ+ドロッパー仕掛けでまったく釣れないときに30分で数杯釣れた。これはうれしい。ぜひもう一回試したいが、また来年でしょう。なにしろイカメタルは船賃が高い。
さて、一般に、オモリグが向いているのは、
- 潮が流れているとき
- よくあるメタルスッテ+ドロッパー仕掛けで釣れないとき
- タナがいまひとつわからないとき
とされる。今回は2.と3.に該当した。敢えて加えるならば、自分で作ったオモリグじかけを楽しみたかったことも。前回オモリグを試したとき、ハリスがオモリやサルカンに絡んで釣りにならなかった。絡まなければいいだろうと、
- 0.6mm透明パイプでハリスをほぼすべて覆った:絡まないようにする対策の根幹。ハリスをすべて覆うと、エギが動かなくなる。100mm程度は糸を出す。パイプが動かないように、ウキ止めゴムを使って止める。
- ハリスを6号に太くした:しかも硬すぎるくらい硬いDuel Hardcore。いつも使うシーガーと比べると、絹糸と針金くらい異なる。いまどきはもっとやわらかいラインがあるようだけど、費用対効果を考えればシーガーがわたしにはふさわしい。
浮気はダメ
遊漁船にも相性がある。わたしには為石港にいるA丸とB丸がいいみたい。これら船で楽しむことができる遊漁を今後も楽しもう。
わたしが船を選ぶ基準は以下に示すとおり。
- 排気管は船尾か煙突:船酔いをもたらす原因は、揺れよりも排気ガスである気がする。排気管が船尾ないし煙突であれば、船尾側から強風が吹かない限り、臭気はさほど気にならない。が、操舵室横から排ガスが漏れる船だと、航走中も臭気がする。燃料が重油であるなどは最悪で、臭気がひどい。乗船前に船をみれば、排気管位置や汚れで排気状態が推測できる。
- ある程度大きな船:あまり小さい船は揺れる。モーターボートタイプは揺れる。漁船がいい。
- デッキ上が片付いている船:漁労装置があってもよい。しかしロープが散乱するとか、コケが生えているとか、以前の乗客が使ったであろう仕掛けやタイラバスカート切れっ端が落ちているのはよくない。
- トイレ完備:トイレがある、という船はたくさんある。しかしそれらは機関室区切って設けた入りにくいトイレだったり、扉がこわれてトイレに入れない船が多い。電話ボックス風に陸上同様なトイレを設けた船がいい。
- 定員少ない:混んでいると仕掛けがからむうえに釣りにくい。5トン程度でせいぜい8名でしょう。ドテラなら5名が限度か。
- 天候判断が保守的:天候判断がチャレンジャーだと、うねりがありすぎる日でも潮流が早すぎる日でも出港する。たいていこういう日は釣りどころではない。
結局、いつも乗っている船がもっともよろしい。為石はすてき。9月21日(月・敬老の日)、長男と船に乗ることにしましたよ。好天を期待。
2020年09月03日(木曜日)
タイ都県別労働力統計ファイルを読み込む(その7)
コードはGithubに置いた。
バンコク都データを読み込む
読み込み用関数を書いた。といっても、これまでに書いたコードをコピペして少しいじっただけ。BKKデータはフォーマットが比較的揃っているから、さほど苦労はない。
これまでと異なり、読み込めることがある程度わかっている。年次や都県名も加えて、最終的に使うフォーマットまでデータを作り込んでしまう。ポイントは以下に示すとおり。
- 年次:filepathからいただく。ファイル名には年次データの一部が含まれる。これを利用・置換して都県名とする。dplyr::case_when()とstringr::str_detect()がよい仕事をする。詳しいことはGithubコードをみてね。greplを使った正規表現もまだまだ現役だから、こっちもよろしく。年次データへ変換するには、lubridateパッケージが実によい仕事をする。
- 都県:都県名は地図用データからいただく。地図用データはGADMからダウンロードする。地図データと同じ名前を使えば、後でマージするにもいろいろ楽ができるから。とにかく、楽をすることを考えよう。
- 状態:これはこれまでつくったデータセットにも含まれる。今回は統計表からそのままいただいた。これまでに作成した関数についても、内容を改変してこれにあわせたい。なにしろ、これが公式表記ですから。
これで課題は読み込めなかったデータ読み込みとデータがない箇所を特定することになった。なんとか来週中に終わるかな。
2020年09月04日(金曜日)
タイ都県別労働力統計ファイルを読み込む(その7)
例外処理しようにも例外が多すぎる
読み込めなかったファイルについて、なぜ読めないかファイルをプレビューしながら考える。パターンが多すぎて困ることがわかった。トルストイの『アンナ・カレーニナ』ではないけれど、「読み込むことができるファイルはどれも似たようなものだが、読み込めないファイルはいずれもそれぞれに読み込めないものである」。
試みに、読み込めない理由を列挙する。これほどあるかと驚くこの頃。出張できれば手っ取り早く埋めてしまえるけれど、できないことにはどうしようもない。タイ王国に入国するにはなかなか壁が高い。
- 列が少ない:横長データで、15歳ないし13歳以下人口が記されない場合に発生するエラー。読み込み不能になったファイル中、半数以上はこれ。横長用読み込み関数を改造あるいは対処できるようにすすればすぐにでも読み込めるだろう。もうすこし頑張って、列が少なくても指定する変数だけ読み込むコードもできないこともない。タイ文字項目名をどう正規表現で表現するかが鍵になろう。
- 大地域データがある:都県データをダウンロードしたはずだけれど、どういうわけか大地域(BKK、中部、北部・東北部・南部および総計)がダウンロードされた。これはどうしようもない。取り寄せられればいいが、出張して打ち込んだほうが早い。はやくCOVID-19にともなう渡航制限が緩和されてほしい。
- 文字化け:どうしようもない。取り寄せられればいいが、出張して打ち込んだほうが速い。はやくCOVID-19にともなう渡航制限が緩和されてほしい。
- Person over/under 13:いまでこそ15歳以上人口になったけれど、以前は13歳以降人口だった。これは簡単な正規表現でなんとか。
stringr::str_detect(hoge$status, "13|15")
dplyr::filter(hoge, grepl("13|15", status)) %>%
みたいな感じで。grepよりもstringr::を使ったほうが速いらしい。つとめてつかいましょう。
- 絶対数と百分率が横並び:
- なぜ読み込み不能か不明:読み込めるようにもう一度。
- 空白混在:
- 白紙:まったくデータがない。こればかりはどうしようもない。取り寄せられればいいが、出張して打ち込んだほうが早い。はやくCOVID-19にともなう渡航制限が緩和されてほしい。
- 性別なし:白紙と同様。こればかりはどうしようもない。取り寄せられればいいが、出張して打ち込んだほうが早い。はやくCOVID-19にともなう渡航制限が緩和されてほしい。
- 100%表記がない:縦長データから絶対値のみ抽出するとき、パーセンテージが100である行以下は捨てるコードを書いた。書いたときにはなかった、パーセンテージがまったくないデータまでは考えなかった。なくてもよいので、縦長コードを読み取る関数を改造して読み取れるようにすればよい。
- データ違い:どうしようもない。たいてい、学歴・性別労働力人口が記入される。取り寄せられればいいが、出張して打ち込んだほうが早い。はやくCOVID-19にともなう渡航制限が緩和されてほしい。
- 欠測:Others もしくはTotal labor forceが欠測というより入力されていない。逆算はできるけれど、あまりしたくない。もとデータがあれば、もとデータを使ったほうがいいだろう。取り寄せられればいいが、出張して打ち込んだほうが速い。はやくCOVID-19にともなう渡航制限が緩和されてほしい。
そろそろぼちぼち作図用コードも書きましょうか。
Rでリモートセンシングにちょっかいを出す
rgeeというパッケージをみつけた。Google Earth EngineにRからアクセスできるパッケージ。これまでもいくつか類似パッケージはあったが、これはよさそう。Rで動作するから、Rにデータをダウンロードしやすい。一方、Google Earth Engine固有のコマンドを覚えれば、さらに処理が楽になるでしょう。
裏でPythonが使われている。minicondaなるソフトウェアをインストールしていた。インストールには30分以上かかった。いろいろ間に入っているらしく、処理にはそれなりに時間はかかる。なにかするならば、時間があるときにしたほうがいいでしょう。
チュートリアルを少々いじって、Mo O上空を撮影した衛星画像を処理した。雲は外し方があるようだから、参考にしながらぼちぼち挑戦しましょうか。
それにつけても姫の愛しさ、ではなくてリモートセンシングの奥深さ。おべんきょう用に、文献をいくつか発注した。
野外で使える充電システムを考える
時間があるうちに、ヒマなときにしか考えられないことを考えよう。
野外調査において電子機器はよく使う。スマホにタブレット、その他諸々。これらはだいたい電池式で、USBから充電するようになっている。電池が消耗した場合、モバイルバッテリーから充電することになっている。しかし、野外におけるモバイルバッテリーを用いた充電には、いくつかの問題が存在する。
水分に弱い:野外といえば雨。漂着ゴミ調査ならば海水にひたることも考えないといけない。モバイルバッテリーはどう頑張っても完全防水はできないだろう。USBソケットから水や泥が侵入すると、短絡するかもしれないし回路が泥で埋まって使い物にならなくなる。
機内持ち込み数に制限がある:だいたい電池は航空機で運ぶ。各航空会社が設ける規制はまちまち。TGは厳し目でNHはややゆるめ。共通してだいたい160WHくらいまでがせいぜい。これらの最大公約数を狙う。
端末数が多い:持参する端末は人数分を超える。よくあるUSBモバイルバッテリーはせいぜい2口。もう少し増やせないだろうか。
となると、
- 防水処理がなされる電池
- 航空会社による制限をクリヤできる容量
- 一度に数多く充電できる性能
が視野に入る。既製品を検討すると、該当する性能を有する電池はなさそう。ということで自作する。今回は、防水性能が高いバッテリーから、手頃なコンバーターを使ってUSB電圧5Vにダウンコンバートするシステムを考える。バッテリーはシマノ製「電力丸」、コンバータにはSeriaで売っているシガーソケット電源を改造してワニ口クリップから入力することを考える。
電力丸は、148Wh(電圧14.8V、容量10Ah)というリチウムイオン電池。電動リール駆動用に開発された。電極は露出するが、洗浄できる防水性能を有する。電源スイッチと短絡防止、過放電防止装置が備わる。航空機にもどうやら持ち込みできる。端子形状を考えれば、容量は十分。タブレット数台を同時充電できる。釣り道具というのは、野外で使うにはまことに便利にできている。
問題は端子形状。USBプラグを挿すソケットはない。単純な端子形状を活用、コンバータに電源供給する方法を考えないといけない。ありがたいことに、改造記事をみつけた。これはなかなかよいから、そのまま使わせてもらいます。なんといっても部品代が安くて大変助かる。さっそく買ってみた。
分解は工具不要。開けると、バネにヒューズ管(1A)がついている。部品は定番、回路も定番。しかしここまで小さく実装するとはなかなか。バネとヒューズ管を撤去して電線をはんだ付けして外に取り出すだけで目的達成できそう。電線にはヒューズ管とヒューズソケットを忘れずに。どうしても改造したくなかったら、シガーソケットにワニ口クリップをつけてもいい。この場合、小さなタッパウェアにでも封入、防水処理をしたほうがいい。
あれ、ここまでやるならシガーソケット分配器を買ってきて、線だけ取り替えてヒューズソケットをつけたほうが早いかな。100円だし。でも自作は男の子のロマンだし、いくらでも大きくできる強みが。いっそ電力丸を収納する大きなタッパウェアを購入、ヒューズボックスだけつくって、線とヒューズソケットをいくつかとりつけてシガーソケットを外付けしてやろうか。うん、それがいい。容量から考えて、ヒューズ部放熱はさほど考えなくてもいいだろうから、アルミケースまでは必要なさそう。シガーソケット部防水を考えれば、大きなタッパでシステムをつくったほうがいいだろう。
さて、バッテリーと電線、熱収縮チューブ、ワニ口クリップでも調達しましょうか。テスタは発注済。
2020年09月08日(火曜日)
タイ都県別労働力統計ファイルを読み込む(その8)
いつものように、コードはGithubに置いた。
本日は横型テーブル中、15歳未満に関する記載がないテーブル。ときどきおかしなデータもあったけれど、読み込みには成功した。読み込み用関数は、横型用関数を改良しつつ、BKK用関数を使って整形もしてつくった。
ここまでやって、おかしい横型データが179。各県用に関数を作ったほうがよさげ。
次は縦型テーブルかな。これも同じようなデータセットが多い。それが終わったら、縦型と横型も整形しましょう。気が楽になる。
タイ・ベトナム・カンボジア
先週末、カンボジアについてわが研究グループに対して支援がなされる旨、通知があった。研究する機会を与えていただき、ありがたいことである。
東南アジア研究については、いずれも研究資金獲得に成功している。が、出張できない。前に進められない。さしあたりは官庁統計と衛星画像とを組み合わせる研究に活路を見出す。が、いずれは出張して現認が必要であるし、カンボジアとベトナムは調査が必須。カンボジアについては、現地教職員や学生に依頼する方法が採用できないか、先生方と思案中。
あぁ魚釣り
新しいお手頃ロッド
週末は小アジ釣りに決定。
Twitterによれば、タカミヤからタイラバ用お手頃ロッドが出たらしい。FR Pandion 68-M-Tは対象魚種限定なし。6,980円。近頃はこういう魚種限定がないロッドが増えている。専用ロッドは心地よいし趣味としてはいいでしょうけど、専用ロッドを準備すると大変費用がかかるし収納場所に困る。
見た目はReal Methodシリーズの廉価版。黒くて凹凸があって。Mで120g背負えるらしい。MHは150gまで。これはいいかもしれない。ただ、タカミヤ製に共通する特徴で、ちょっと硬いかもしれない。
仕舞寸法102mmはポイント高い。ポイントだけに。拙宅玄関や乗合船オーニングに引っかからないでしょう。道具箱に立てても扱いやすい。これだけでも試してみたくなる。週末に使うコマセを仕入れるときにでも眺めよう。でも眺めるだけ。いまでも特に不自由はないから、寒くなったらはじめる落とし込み準備に力を注ごう。
落とし込み準備メモ 必要なもの
こういうものが必要らしい。タイラバなどに比べれば、2倍くらいお金がかかる。青物にはハマるらしいけれど、どうにも恐ろしい。 まずは1回、貸道具(あれば)をあれば借りて、試しに釣ってみたい。どこまで揃えるかは、船長にたずねてから。
- 竿:
- リール:
- PE:他船によれば、6号がいいみたい。マーカつきが深さを知るにはいいだろう。
- リーダー:フロロ16号。3ヒロくらいつけるよう。
- 竿掛け:あれば楽でしょう。上に書いた道具はたしかに重そう。
- 仕掛け:市販がある。800円/個くらいする。ハリス太さを変えながら、10セット以上用意したほうがいいらしい。どうやらかなり高い頻度で切られるらしい。
- オモリ:80号と100号と10つくらいだろうか。500円/個くらいはする。
- サルカン:大きい。
2020年09月09日(水曜日)
タイ都県別労働力統計ファイルを読み込む(その9)
いつものように、コードはGithubに置いた。
なぜこうなったろう
LFSをさわると、毎度用語不統一と項目不統一に悩む。
用語が不統一である場合、用語で抽出するときに抽出されず、エラーが発生する。たとえば、非労働力人口を意味する用語は、ไม่อยู่ในกำลังแรงงานであったりไม่อยู่กำลังแรงงであったりする。部分抽出すればいいが、下手に部分を設定すると他項目まで拾ってしまいかねない。なにしろ用語が不統一であるから、どこになにが隠れているかわからない。仕方がないから、見つけ次第項目名をすべて抽出候補に加える。ありがたいことに、さほど速度は気にならない。読み込むファイル数は多いが、ファイル1つあたりのデータサイズはさほど大きくないからであろう。
項目を抽出するコードはこんな感じ。
dplyr::filter(.,
grepl(stringr::str_replace_all(
c(
"กำลังแรงงานปัจจุบัน|ผู้มีงานทำ|ผู้ไม่มีงานทำ|กำลังแรงงานที่รอฤดูกาล|ไม่อยู่ในกำลังแรงงาน|ทำงานบ้าน|เรียนหนังสือ|อื่น|ผู้ว่างงาน|รอฤดูกาล|ไม่อยู่กำลังแรงงาน|ผู้ไม่อยู่ในกำลังแรงงาน"),
"[\r\n]",
""
),
Status)
)
抽出項目名候補をタイ語で列記、string::str_detect()改行記号を除去してからbase:;grepl()で評価する条件として与える。評価結果をdplyr::filter()に与えて、該当する項目を抽出する。タイ語に含まれる改行記号はやっかいで、そのままではgrepl()が評価してくれないことがある。この妙な改行は、条件を書き直すときも不便(というか見た目にきたならしい)。RStudioはタイ語(というよりマルチバイト文字全般)に対していまひとつ親切ではないことを思い知らされる。
抽出する項目数は、8つしかない。本来は13項目あるし、上記抽出候補は8より多い。実は、県や年次によって、集計していないデータが存在する。やはり読み込み時にエラーとなる。労働力人口など他項目を合計すれば算出可能な項目については、読み込まないことにした。他項目から推測できないデータは読み込まない。欠測をモデリングして推測しながらデータを使うしかなかろう。
これまでに読み込んだファイル数は6500程度。あと500ほど残っている。こちらもパターンはあるが、どうしようもない欠測もある見込み。ほどほどのところでデータ読み込み自動化は打ち切って、手打ちにしたほうがいいだろう。ここまでするにあたって、MSExcelファイル中身を参照する機会は多い。実はエクスプローラ付属MSExcelファイルビューワが、データ読み込み作業においてもっとも活躍しているような気がする。
base::if_elseとdplyr::ifelse
単一シート内に含まれるデータについて、表形式が異なるだけではなく百分率が算出されていたりいなかったりする場合がある。データはほしいから、百分率が含まれるかどうか評価、評価結果からデータ読込範囲を変更することにした。ここでbase::ifelse()が活躍する。まぁまぁ早い。T/Fにてデータ型を揃えなくてもよいなど楽に使える。dplyr::if_else()がやや速いが、こちらはデータ型をそろえなければならない。そろえてもいいけれど、面倒になった。
面倒になったといえば、関数内容を書き換えたい。いろいろなファイル読み込み関数を林立させて読み込みには成功したけれど、コピペでつくったから同じような記述があふれている。これらを整理、もう少し小さな関数に分割したほうが保守性がよくなるはず。dplyr::case_when()にてファイルパスから県名を抽出する部分など、すべての関数に加えなくてもいいではないか。
dplyr::mutate(
province = dplyr::case_when(
str_detect(filepath, "amnatchr") ~ "Amnat Charoen",
str_detect(filepath, "angthong") ~ "Ang Thong",
str_detect(filepath, "BK") ~ "Bangkok Metropolis",
str_detect(filepath, "bungkan") ~ "Bueng Kan",
str_detect(filepath, "buriram") ~ "Buri Ram",
str_detect(filepath, "chchsao") ~ "Chachoengsao",
str_detect(filepath, "chainat") ~ "Chai Nat",
str_detect(filepath, "chyaphum") ~ "Chaiyaphum",
str_detect(filepath, "chtburi") ~ "Chanthaburi",
str_detect(filepath, "chmai") ~ "Chiang Mai",
str_detect(filepath, "chrai") ~ "Chiang Rai",
str_detect(filepath, "chonburi") ~ "Chon Buri",
str_detect(filepath, "chumphon") ~ "Chumphon",
str_detect(filepath, "kalasin") ~ "Kalasin",
str_detect(filepath, "kpphet") ~ "Kamphaeng Phet",
str_detect(filepath, "kcnburi") ~ "Kanchanaburi",
str_detect(filepath, "khkaen") ~ "Khon Kaen",
str_detect(filepath, "krabi") ~ "Krabi",
str_detect(filepath, "lampang") ~ "Lampang",
str_detect(filepath, "lamphun") ~ "Lamphun",
str_detect(filepath, "loei") ~ "Loei",
str_detect(filepath, "lopburi") ~ "Lop Buri",
str_detect(filepath, "maehson") ~ "Mae Hong Son",
str_detect(filepath, "sarakham") ~ "Maha Sarakham",
str_detect(filepath, "mukdahan") ~ "Mukdahan",
str_detect(filepath, "nknayok") ~ "Nakhon Nayok",
str_detect(filepath, "nkpathom") ~ "Nakhon Pathom",
str_detect(filepath, "nkphanom") ~ "Nakhon Phanom",
str_detect(filepath, "nkrat") ~ "Nakhon Ratchasima",
str_detect(filepath, "nksawan") ~ "Nakhon Sawan",
str_detect(filepath, "nksitham") ~ "Nakhon Si Thammarat",
str_detect(filepath, "nan") ~ "Nan",
str_detect(filepath, "naratwat") ~ "Narathiwat",
str_detect(filepath, "nblamphu") ~ "Nong Bua Lam Phu",
str_detect(filepath, "nongkhai") ~ "Nong Khai",
str_detect(filepath, "nontburi") ~ "Nonthaburi",
str_detect(filepath, "ptthani") ~ "Pathum Thani",
str_detect(filepath, "pattani") ~ "Pattani",
str_detect(filepath, "phangnga") ~ "Phangnga",
str_detect(filepath, "phatlung") ~ "Phatthalung",
str_detect(filepath, "phayao") ~ "Phayao",
str_detect(filepath, "phchabun") ~ "Phetchabun",
str_detect(filepath, "phetburi") ~ "Phetchaburi",
str_detect(filepath, "phichit") ~ "Phichit",
str_detect(filepath, "psnulok") ~ "Phitsanulok",
str_detect(filepath, "ayuttaya") ~ "Phra Nakhon Si Ayutthaya",
str_detect(filepath, "phrae") ~ "Phrae",
str_detect(filepath, "phuket") ~ "Phuket",
str_detect(filepath, "pchburi") ~ "Prachin Buri",
str_detect(filepath, "pchkkhan") ~ "Prachuap Khiri Khan",
str_detect(filepath, "ranong") ~ "Ranong",
str_detect(filepath, "ratburi") ~ "Ratchaburi",
str_detect(filepath, "rayong") ~ "Rayong",
str_detect(filepath, "roiet") ~ "Roi Et",
str_detect(filepath, "sakaeo") ~ "Sa Kaeo",
str_detect(filepath, "sakonnk") ~ "Sakon Nakhon",
str_detect(filepath, "smprakan") ~ "Samut Prakan",
str_detect(filepath, "smsakhon") ~ "Samut Sakhon",
str_detect(filepath, "smskhram") ~ "Samut Songkhram",
str_detect(filepath, "saraburi") ~ "Saraburi",
str_detect(filepath, "satun") ~ "Satun",
str_detect(filepath, "sisaket") ~ "Si Sa Ket",
str_detect(filepath, "singburi") ~ "Sing Buri",
str_detect(filepath, "songkhla") ~ "Songkhla",
str_detect(filepath, "skhothai") ~ "Sukhothai",
str_detect(filepath, "suphan") ~ "Suphan Buri",
str_detect(filepath, "surat") ~ "Surat Thani",
str_detect(filepath, "surin") ~ "Surin",
str_detect(filepath, "tak") ~ "Tak",
str_detect(filepath, "trang") ~ "Trang",
str_detect(filepath, "trat") ~ "Trat",
str_detect(filepath, "Ubon") ~ "Ubon Ratchathani",
str_detect(filepath, "udon") ~ "Udon Thani",
str_detect(filepath, "uthai") ~ "Uthai Thani",
str_detect(filepath, "utradit") ~ "Uttaradit",
str_detect(filepath, "yala") ~ "Yala",
str_detect(filepath, "yasothon") ~ "Yasothon",
TRUE ~ "hogehoge"
)
)
これなどデータを結合後にやってもよい処理である。まったく。
あぁ魚釣り
サビキ準備:コマセを考える
サビキで釣るには、コマセは大きな役割を果たす。魚影が濃い場合や深場である場合はカラバリでも結構釣れる。が、岸壁から相手にする小アジなど、コマセの切れ目が縁の切れ目とばかり、コマセがあるときだけサビキによって来る。釣って消化器官を開けば、コマセだらけなくらいに食べまくる(なので解体はなるべく早めに)。
いろいろなコマセを売っているけれど、種類毎に特性が異なる。
アミ姫:スタンドパックに封入されたコマセ。常温保存可能。青いパッケージの通常タイプとラメが入ったピンクパッケージがある。いずれもフルーティな香りがついている(ことになっている)が、それなりに臭気はする。性状はとろみがある。アミ本体は比較的形状をとどめていて、目地が細かいドンブリかごから出ないことがある。
にぎって入れるだけ:アミ姫類似商品。アミ姫よりも少々安い。香りはついていないが、さほど臭気はしない。性状はおからのよう。おからのようであるがゆえに、ドンブリかごからは速やかに放散される。あまりにも放散されるから、ドンブリかご目地によってはタナまでコマセがもたないことがある。
冷凍アミブロック:よくある三陸産。常温保存はもちろんNG。包装にいくつか種類がある。わたしは真空パックされた品物を愛用する。価格は袋に入っているだけなものよりも1.5倍程度するが、持ち運び中も汁がもれず臭気もしない。使うときに釣具店で売っている粉を混ぜると、水分が吸われ扱いやすくなる。扱うにはバケツやコマセスプーンなど道具も必要。使用後道具は海水で洗浄するが、臭気は残る。天日干ししつつ雨が降るまで待つ。雨水が貯まると臭気も抜ける。
冷凍アミブロックがやはり釣れる。アミ姫やにぎっていれるだけは、管理が楽だが釣り場で扱いにくい。そのうえ釣れないとなれば、第一選択は冷凍アミブロックでしょう。ただ、あの臭気だけはなんとかならんか・・・。