一致データの抽出
最近は異常気象が続いていますが、太陽の活動と無関係とは言えないでしょう。ここに1999年から2008年までの10年間の年間平均黒点数のデータがあります。
2000 119
2001 111
2002 104
2003 63
2004 40
2005 29
2006 15
2007 7
2008 2
10年間の黒点数の推移
ここ数年で急激に黒点数が減ってきているような気がしますが、グラフにしてみるとどんな感じになるでしょうか。データはdata.txtに格納されているとして、xypとnpdでグラフを描きます。
^ *
-100 *
| *
*
|
-75
|
| *
-50
|
| *
-25 *
|
| *
| * *
+---|---|----|---|----|---|----|---|--->
1999 2008
急速に黒点数が減っていることがグラフで一目瞭然です。太陽活動が活発だった2000年からどんどん減ってきています。そろそろ上昇に転じるのかどうか観察が続いています。
直近5年だけのデータを抜き出すには
さて、黒点数の直近の動向を知るために、直近5年間のデータだけを利用したいとします。ただし、前回の特定の行を取り出すやり方では面倒ですし、直近10年や20年を取り出したいという要求には耐えられそうもありません。
そこで、ユーティリティーパッケージのlookupプログラムを使ってみます。lookupはデータを行とみなして一番先頭にある数値がlookupに指定された数値の間にあるかどうかを判定して、該当する行を抽出するプログラムです。具体的にlookupを使って説明しましょう。
2004 40
2005 29
2006 15
2007 7
2008 2
lookupに指定した数値は2004と2008です。つまり、直近5年の2004年から2008年のデータを抽出することになります。データの中で最初の数値が2004から2008に合致するデータが次の黒点数と共に抽出されます。
では、直近5年間の平均黒点数を求めてみましょう。年のデータを消してから平均のプログラムに繋げればOKですね。
18.6
直近5年間の平均黒点数は18.6です。その前の1999年から2003年までの5年間ではどうだったでしょう。
98
かなり多いですね。最近の太陽活動が低下してきていることは間違いないようです。
黒点数が少ない年のデータを抜き出す
次にちょっとした応用です。今度は年を範囲にデータを抽出するのではなく、年間平均の黒点数が20個以下だった年を抽出するにはどうすればいいでしょうか。lookupは最初の数値しか判定の基準にしませんので、以下のようにします。
2006 15
2007 7
2008 2
先にデータの順番を変えてからlookupプログラムに通して、最後にデータの順番を戻して答えを出しています。答えは、ここ3年だけということになりますね。
黒点数が異常な年のデータを抜き出す
データの操作では、条件に一致したデータを抜き出す作業が多いのですが、希に条件に一致していないほうのデータを抜き出したいときがあります。
その場合は、ユーティリティーパッケージのnlookupプログラムを使います。nlookupはデータを行とみなして、一番先頭にある数値が nlookupに指定された数値の間にあるかどうかを判定して、該当しない行を抽出するプログラムです。
上記の例で、黒点数が20個から100個の範囲にない年(とても少ないか多い年)を知りたいときは、以下のようにします。
2000 119
2001 111
2002 104
2006 15
2007 7
2008 2
簡単に出てきますね。
本講座で使用したプログラムは、ユーティリティーパッケージとして購入することができます。xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。