日本橋濱町Weblog(日々酔亭)

Quality Economic Analyses Produces Winning Markets

Rと統計学を学ぶ(5)・・・正規表現の復習といろいろな確率分布の理解

※本ブログおよび掲載記事は、GoogleAmazon楽天市場アフィリエイト広告を利用しています。

 

進捗してない現実を反省orz

継続は力なり、1冊を読破せよということで、日々少しずつでもいいので、進めることを念頭にこの連載記事を書き始めたが、12月の第4回から3ヶ月以上経過してしまった。こういう状況はそれまで理解したことを忘れてしまうので、非常に非効率になるから極力避けたい。避けるようにしないといけない。今回で5回目。

Cultivation of basic intellect secretly advanced in a secret base

秘密基地で密かに進められる基礎知力の強化

前回まで。

mnoguti.hatenablog.com

本日というか最近の進捗は以下の通り(前回から12週間以上経過しているが、実際、ほとんど進めていない)。

RおよびRStudio

現在の進捗は以下の通り。

  • 第8章の復習:正規表現を理解するためにサンプルプログラムを動かす。

Key words:正規表現

正規表現とは、文字列の中で特定のパターンを見つけ出し、操作するためのプログラム。代表的なものに以下のものがある(他にもある)。

基本的なメタ文字:正規表現では、特定のメタ文字が特別な意味を持つ。たとえば、「.」は任意の単一文字にマッチし、「*」は直前の文字が0回以上繰り返すことを表す。
文字クラス:[ ]内に列挙された文字のいずれかにマッチする。たとえば、[a-z]は小文字のアルファベットにマッチする。
量指定子:特定のパターンの出現回数を指定する。例えば、?は0回または1回、+は1回以上、{n,m}はn回以上、m回以下にマッチ。
位置を指定するメタ文字:「^」は文字列の開始を、「$」は文字列の終了を意味する。これにより、パターンが文字列のどこに現れるかを指定できる。
グループ化とキャプチャ:()を使用して、パターンの部分をグループ化し、後で参照したり、置換の際に使用したりできる。

正規表現には、文字列の加工で積極的に使い込み、慣れることで覚えるのが最短。

正規表現で特定した文字列をどのように処理するかは別に関数を使う。例えば次のような関数で文字列を加工する。

stringrライブラリ*1で本書ではremove、detect、extract、replaceが紹介されている。主な関数は以下の通り。

一般的な文字列操作
str_length(): 文字列の長さを計算する。
str_c(): 文字列を連結する。
str_sub(): 文字列の部分文字列を抽出または置換する。
str_dup(): 文字列を繰り返する。
str_trim(): 文字列の前後の空白を削除する。
str_pad(): 文字列を特定の長さまでパディングする。
文字列の分割と結合
str_split(): 文字列を分割する。
str_split_fixed(): 文字列を分割し、固定長のマトリックスを返す。
文字列の検索とマッチング
str_detect(): パターンが文字列内に存在するかどうかをテストする。
str_extract(): 文字列からパターンに最初にマッチする部分を抽出する。
str_extract_all(): 文字列からパターンにマッチするすべての部分を抽出する。
str_match(): 文字列からパターンにマッチする部分を抽出し、キャプチャしたサブグループも返す。
文字列の置換と修正
str_replace(): 文字列内のパターンに最初にマッチする部分を置換する。
str_replace_all(): 文字列内のパターンにマッチするすべての部分を置換する。
文字列のケース変換
str_to_upper(): 文字列を大文字に変換する。
str_to_lower(): 文字列を小文字に変換する。
str_to_title(): 文字列の各単語の最初の文字を大文字に変換する。
正規表現とのインターフェイス
str_view(), str_view_all(): 文字列内でパターンにマッチする部分をインタラクティブに可視化する。

Rの基本機能(baseパッケージに含まれる)での文字列の操作と正規表現の検索・置換は、grep、grepl、sub、gsubを使う。tidyverseパッケージを主に使うが、参考まで。

grep: 文字列または文字ベクトル内でパターンにマッチする要素のインデックスを返す。
grepl: grepの論理版で、マッチがあるかどうかを真偽値(TRUE/FALSE)で返す。
sub: 文字列内でパターンに最初にマッチする部分を新しい文字列で置換する。
gsub: subのグローバル版で、パターンにマッチするすべての部分を新しい文字列で置換する。

第9章は、4つ目のデータ型、因子型とランダムなデータ作成を理解する。

Rで統計学

現在の進捗は以下の通り。

  • 第3章:確率分布いろいろ

Key words:確率、確率分布、確率変数、連続と離散、条件付き、独立、期待値、密度関数など

この章で扱われる確率分布は、二項分布、ポアソン分布、幾何分布、負の二項分布、正規分布、対数正規分布、指数分布、ワイブル分布。

ここでは確率分布の定義を知り、Rの関数を使えるようになる。

Rの進化の歴史

ネットを彷徨っていたらたまたまRの歴史を簡潔にまとめたページを見つけた。2018年の文章だから、Rの歴史は今年2024年で30年を超えていることになる。これを読めばなぜデータ分析にRを使うのか、Rを学ぶのかを理解する一助となるだろう

exploratory.io

おわりに

時間に追われているわけではないが、毎日継続することが大切。途切れないように続ける。

ではまた次回。

ブログランキング・にほんブログ村へ

PVアクセスランキング にほんブログ村

本文章を書くにあたって、一部、ChatGPTの出力結果を使っています。

*1:tidyverseパッケージに含まれる