シン・春夏冬広場

楽しいことになんでもやっていこうっておもってますぜ。

ExcelやGoolgeスプレッドシートの時系列データをMod関数によって間引く方法

ビッグデータ解析がはやっている。ビックデータ解析は色んなデータを組み合わせて、新しい何かを生み出そうぜっていう取り組み。パソコンの計算量が増えてきて、様々なことが出来るようになってきた。しかしながら、それだけ巨大なデータだと簡単に利用できるソフトがあればいいが、可能な限り手元にあるソフトで対応したい。

 

Excelを使って、データの間引き作業などができると、とっても便利だなって考えた。ただ、データ量が増えれば増えるほどエクセルはかなり重くなって使いにくくなる。最終的にはデータの処理スピードが速い専用のソフトで計算できるようにするしかない。

 

今回の取り組みは実験的なものでもあるが、便利だと思うので紹介したい。

 

Mod関数とは何か

2つの正の整数である、割られる数 a【被除数】と割る数 n【除数】が与えられたときに、aをnで割ったあまり【剰余】を計算する関数のこと。例えば5 mod 2とすると結果は1となる。これは5÷2を行うと2×2=4なので、5-4=1となり、5 mod 2 = 1となる。

 

このような感じで、ある数字をある数字で割ったときのあまりを求める関数をMod関数という。どんな場所で使われているかというと、実はカレンダーの計算や日付の計算に使われている。パソコンや携帯ですごく未来のカレンダーが簡単にみられるのはMod関数を用いて自動的に演算できるのである。モジュロー演算ともいわれていて、いろんな種類がある。サマーウォーズで、健二くんが夏希先輩の誕生日の曜日を当てたのは、このMod関数を用いて出している。

 

 

データを間引く方法

本題のデータを間引く方法を考えてみたい。方法としてはフィルターをかける方法があるが、フィルターは例えば、a、b、cなどとつけてaだけ取り出すといった定期的に間引けるということであって、任意の数字に達したら間引けるという方法ではない。Mod関数を用いればある特定の数字のみ間引ける。

 

・きりの良い数字を間引く方法

f:id:bluebunny666:20220219141638p:plain

 

利用するソフトは、ExcelでもGoolgeスプレッドシートどちらでも問題ない。ある時系列データが存在する場合に、測定した時間に対してMod関数を使う。測定を細かく行ってしまったが、データが重すぎるので間引きたい場合に利用ができる。Mod関数の中身は

mod(割りたいデータ,除数)=余り

となるので、割りたいデータに時間を指定し、間引きたい数が除数になる。除数は今回3と仮に設定すると時間は刻一刻と増えるのだが、余りは0,1,2と周期的な関数になる。このように自動的に設定できれば、自分の好きな時間を指定し、間引くことが可能である。

 

・きりの悪い数字を間引く方法

 

f:id:bluebunny666:20220219143012p:plain

 

しかしながら、いつも困るのは時間はきちんとカウントされているのだが、切りの悪い数字でカウントされる場合がある。今回仮に図のように途中までは0.114刻み、途中から0.115刻みが加わったものを対象にしてみる。この場合は、Mod関数とRound関数を用いると簡単に解決できる。Round関数は四捨五入する関数で

Round(四捨五入したい数,桁数)=四捨五入した結果

が表示される関数である。桁数は小数点以下第何桁目を四捨五入するかを指定する。今回は整数で表示させたいので、0を指定する。そうするときりのよい数字を扱っていた時と同じ繰り返しに戻る。

 

実際に間引く場合はIF文を用いてIF(A1 = 2,1,0)などと記載する。この場合、A1=2という条件を満たしている場合は1、そうでない場合は0が返される。A1は指定したいセルを記載する。

 

このようにすることで、時系列データを簡単に間引くことが出来る。

 

まった今度をおっ楽しみに~。ばぁい。