データ変換の基礎の基礎
自由にコピーして使って下さい
実験でとったデータを Excel で解析したい。 Mac で作ったデータをワーク
ステーション(UNIX)で処理したい。
このような時にデータの変換が必要になります。ここでは,最も使用頻度が
高いと思われる,下のようなデータ列の変換についての,ちょっとした注意に
ついて列挙します。
- [HEAD1],[HEAD2],[HEAD3],.....
- [data11],[data12],[data13],.....
- [data21],[data22],[data23],.....
- [data31],[data32],[data33],.....
- [data41],[data42],[data43],.....
これらの注意は,一般的な『テキストファイルの変換』の場合にも当てはまり
ます。
このようなテキストデータの場合,注意する点は次の3つです。
- データの区切りは何か(コンマかスペースか)?
- それぞれの行の終りは何か( CR か CR+LF か)?
- ファイルの終り( EOF )は何か?
1. データの区切り
データの区切り記号には大きく分けて,
が使われます。それぞれのソフトで使われる区切り記号は何かということを調
べて,必要に応じて変換プログラムを書くかワープロの「置換」を使って変換
する必要があります。一般には「タブ」を使うソフトが多いようです。
良くあるトラブルとしては,次のようなものがあります。
★区切り記号のスペースの数が違う( N88-Basic のデータなど)
- 「連続するスペースをひとつのタブで置き換える」プログラムを
書く。C言語で書けば20行以内の簡単なものです。
- ワープロの「置換」を使って,スペースの数の多いものから順に,
タブに置換する。
2. 行の区切り
行の区切り記号には,
- CR (キャリッジリターン;復帰)
- LF (ラインフィード;改行)
- CR + LF
が使われます。それぞれのソフトで使われる区切り記号は何かということを調
べて,必要に応じて変換プログラムを書くかワープロの「置換」を使って変換
する必要があります。
良くあるトラブルとしては,次のようなものがあります。
★1列目の数値データ(上の例の [data i1])が文字データになって
しまう
<原因> 行区切り記号の変換がうまくいかず,次の列の先頭にくっ
ついてしまうため。
- 改行記号の変換を正確に行なう。
- 行の先頭に「タブ」を付けて,1列目からのデータを2列目以降
にずらし,1列目は使用しない。
★区切り記号が変換されない。
<原因> 行区切り記号のコードがコンピューターの間で異なるため。
- ワープロの「置換」を使って,例えば, [Ctrl-J] を [Ctrl-M]
に置換する。
3. ファイルの終り
ファイルの終りは EOF ですが,時としてトラブルが起こります。
★読み込みが終了しない。異常な値が表示される。
<原因> EOF のコードがコンピューターの間で異なるため。
- ファイルの終りの部分で不要な所を(目に見えない部分も)消去
する。
- ファイルの初めのヘッダ部分も,不要であれば消去する。
小矢野のホームページへ
このページの御感想・御意見は koyano@jaist.ac.jp まで。