Excelの復習と正規表現の後方参照

前回課題について:

第6回授業の獲得目標: [worried]

エクセルによるデータの並び替え・集計・グラフ作成の復習: 課題データを用いて [smile]

前回の課題は、厚生労働省統計表データベースシステムで公開されている、「1C 上巻 死亡 第5.12表_ 死因年次推移分類別にみた性別死亡数・率(人口10万対)」の表から1986年以降の男女別死亡数のみ抜粋した表(file2009_情報#05課題.xls)を使って課題の操作を行うことだった。多くの人ができていたが、並べ替え・集計はクラス全員に理解してもらいたい大事な項目なので、もう一度おさらいをする。また、関数とデータ型についても、少し説明する。

この説明はもう聞く必要がないという人は、次の正規表現のところを読んで、練習問題をやっておこう

データの選択を個別に行えば、グラフを自由に変更できる

先ほど作ったグラフをクリックすると、画面が「デザイン」タブに移動する。ここでデータの選択をクリックすれば、グラフに表示するデータを自由に追加・削除できる。

スクリーンキャプチャを使った画面の切り取りとPukiwikiページへの貼り付け [smile]

われわれはこれまでに、画面に表示されたテキストデータをコピーして加工し、自分のデータとして使う方法を習得した。つまり、

コピー・ペースト

今日の授業では、画面に表示された情報を画像として再利用する方法を学ぶ。この方法をしっていると、画面に表示されたグラフや画像を切り取って、編集し、ウェブページやレポートに貼り付けることができるようになる。

ウィンドウズの基本: スクリーンキャプチャ

ウィンドウズにはキーボードに、画面の情報をそのまま画像としてコピーするキーがついている。この機能を使う方法を覚えておくと、とても便利

  1. まず、キーボードの一番最上段にある
    Prt Sc
    SysRq
    というキーを押してみよう。これで画面がキャプチャされたが、見た目には何も起こらない。
  2. 次に、画像を扱うウィンドウズの基本ソフトである、ペイントを立ち上げる
    kiritori_4.gif
    ペイントの画面が表示されたら Ctrl-Vで、ペーストしてみよう。そうすると、先ほどキャプチャされた画面が現れる。
  3. 範囲選択ツールなどを使って大きさを整えたり、色を変えたりしてみよう。
    kiritori_5.gif
  4. 終わったら、保存 。写真ならJPEG、色数の少ない図ならgif。

切り取る範囲がもう決まっていて、保存やコピーだけをしたいのなら、Snipping Tool

スクリーンキャプチャとペイントによる編集はとても便利なのだが、もしも、切り取り範囲がすでに決まっていて、それほど編集する必要は無く、ファイルとして保存したり、コピーだけをしたいのなら、Snipping Toolが便利。

  1. スタートメニューからSnipping Toolを立ち上げる
    kiritori_1.gif
  2. 切り取りたい範囲をマウスのドラッグで選択する。
  3. ファイルとして保存したり、コピー・ペーストしたりできる。
    kiritori_2.gif

Pukiwikiページへの貼り付け

上の方法で、自分で作ったグラフを、レポート提出用のPukiwikiページに張り付けることができる。今後のレポートではこの方法で画像ファイルを提出することになるので、やり方を覚えておこう。

今日の正規表現:後方参照への挑戦 [smile]

これまでに基本的な正規表現の使い方をマスターした。今日は1つ上のレベルの正規表現「後方参照」にチャレンジしてみよう。K2Editorのヘルプで後方参照に関する項目を見てみると、次のように書かれている。

後方参照
正規表現の中で()を使ってグループ化された部分にマッチ文字列は、 \1,\2などの表現で、
再度正規表現の中に埋め込むことが可能です。 
\の後ろに続く数字は、何番目のグルーピングされた文字列かを示します。 
たとえば、(\w+)[ ]+\1 は "ABC ABC"や"ppp ppp"に対してマッチしますが、 
"ABC ppp"にはマッチしません。 
\の後ろに続く数字には制限はありません。ただし、1〜9までは常に後方参照と解されますが、
 \10以降は、その後方参照に対応するグループがない場合は、8進数のコントロール文字と
解されますので注意が必要です。 
また、本当に一桁の8進数のコントロール文字を書く場合には、 \001などという風に書きましょう。 
(K2Editorのヘルプファイルから後方参照の部分を抜粋)

ちょっと分かりにくいかも知れないが、半角の

()

の中で指定したパターンにマッチした文字列を、

¥1

などという記号を使うことで、呼び出すことができるということだ。
まず簡単な例で操作をしてみよう

テキストデータ: A9JA49K6  に対して、
1. Aの次の1文字と、Kの次の1文字をすべて削除したい。
2. Aの次の1文字と、そのAの並び順を入れ替えたい。

というような問題があったとする。
K2Editorで実際に試してみると:

テキストデータ  A9JA49K6
・AかKの次の1文字を削除
  検索文字列 ([AK]).
  置換文字列 ¥1
・Aに続く1文字とAの順序入れ替え
  検索文字列 (A)(.)
  置換文字列 ¥2¥1

書籍リストを出版年順に並び替える

では、もう少し具体的な例をつかって、段階的に説明してみよう。
まず、次のような書籍のリストがある。このリストを、K2Editorで開いてみよう。file書籍リスト.txt

まずは、これまでに習った正規表現で、どこまで解決できるか考えてみる

このリストには、出版年が含まれているにも関わらず、出版年の順番に並んでない。どうすれば、出版年で並び替えられるだろうか?
リストをよく見てみると

タイトル・著者,出版年,ページ・価格

という順番で並んでいる。ここで、

出版年だけを切り出して、
出版年 <タブ> タイトル・著者,出版年,ページ・価格

というリストを作り、エクセルにペーストして並び替えれば良いということまでは、想像できるだろう。
では、出版年だけを切り出すにはどうすればいいだろうか? まず、これまでにならった正規表現で表現できるところだけを書いてみると、

練習:日付データの形式変更

下に友達の誕生日リストが月、日、年の順で書かれている。

April 29, 1984
March 20, 1987
September 23, 1980	
December 23, 1982
February 11, 1984
January 1, 1999
May 3, 1988
May 4, 1993
May 5, 1987
November 23, 1985
November 3, 1994

第6回授業の課題

課題1.意見調査

課題2 エクセルを用いたグラフの作成およびPukiwikiページでの画像の提出

下の1、2のいずれかの問題を選んでグラフを作成し、できたグラフを画像として保存し、レポート提出用Pukiwikiページに添付して、画面に表示させなさい。

課題3. 発展課題:<希望者のみ提出してください:通常点に加点します>

この課題は http://bean.bio.chiba-u.jp/moodle から提出します。