データ変換の基礎の基礎


自由にコピーして使って下さい


 実験でとったデータを Excel で解析したい。 Mac で作ったデータをワーク ステーション(UNIX)で処理したい。

 このような時にデータの変換が必要になります。ここでは,最も使用頻度が 高いと思われる,下のようなデータ列の変換についての,ちょっとした注意に ついて列挙します。

[HEAD1],[HEAD2],[HEAD3],.....
[data11],[data12],[data13],.....
[data21],[data22],[data23],.....
[data31],[data32],[data33],.....
[data41],[data42],[data43],.....
これらの注意は,一般的な『テキストファイルの変換』の場合にも当てはまり ます。


 このようなテキストデータの場合,注意する点は次の3つです。

  1. データの区切りは何か(コンマかスペースか)?
  2. それぞれの行の終りは何か( CR か CR+LF か)?
  3. ファイルの終り( EOF )は何か?

1. データの区切り

 データの区切り記号には大きく分けて,

が使われます。それぞれのソフトで使われる区切り記号は何かということを調 べて,必要に応じて変換プログラムを書くかワープロの「置換」を使って変換 する必要があります。一般には「タブ」を使うソフトが多いようです。
 良くあるトラブルとしては,次のようなものがあります。

★区切り記号のスペースの数が違う( N88-Basic のデータなど)

  1. 「連続するスペースをひとつのタブで置き換える」プログラムを 書く。C言語で書けば20行以内の簡単なものです。
  2. ワープロの「置換」を使って,スペースの数の多いものから順に, タブに置換する。


2. 行の区切り

 行の区切り記号には,

が使われます。それぞれのソフトで使われる区切り記号は何かということを調 べて,必要に応じて変換プログラムを書くかワープロの「置換」を使って変換 する必要があります。
 良くあるトラブルとしては,次のようなものがあります。

★1列目の数値データ(上の例の [data i1])が文字データになって しまう

<原因> 行区切り記号の変換がうまくいかず,次の列の先頭にくっ ついてしまうため。

  1. 改行記号の変換を正確に行なう。
  2. 行の先頭に「タブ」を付けて,1列目からのデータを2列目以降 にずらし,1列目は使用しない。

★区切り記号が変換されない。

<原因> 行区切り記号のコードがコンピューターの間で異なるため。

  1. ワープロの「置換」を使って,例えば, [Ctrl-J] を [Ctrl-M] に置換する。


3. ファイルの終り

 ファイルの終りは EOF ですが,時としてトラブルが起こります。

★読み込みが終了しない。異常な値が表示される。

<原因> EOF のコードがコンピューターの間で異なるため。

  1. ファイルの終りの部分で不要な所を(目に見えない部分も)消去 する。
  2. ファイルの初めのヘッダ部分も,不要であれば消去する。


小矢野のホームページへ
このページの御感想・御意見は koyano@jaist.ac.jp まで。