受託研究の計算処理のためOSSの統計処理パッケージRで遊んでいます。遊んでいるという表現は不謹慎かもしれませんが。ホンモノの人からすると遊びのレベルです。linuxで使えるようです。私はmac用を使っています。HomePage書籍もいろいろ出ていまして本屋に行っても迷ってばかりの子猫ちゃん。先日、このブログでも購入履歴として書きましたが、以下の本を読みながら自習しています。本書は講義用の教科書として作成したものとのことで読みやすいと思います。見るRの使い方はいろいろなページに書かれているので(それと面倒なので)書きません。私がやったことをメモ代わりに書きます。こんなふうに使えるなら私も勉強してみよかな?と思ってくれる人がいればここにかく意義もありますわね。あるシステムから抜き取ったExcel形式の操業実績データが元データです。Excelでもグラフ機能や統計処理機能がついていることはついていますが専門家の方がいうには計算結果はかなり怪しいらしい。何より大きなデータを扱うとExcelが黙り込んでしまうことも。Excelいじめをしても仕方がないので。Excelでは扱いにくかったので他の方法がないものか他の先生に相談したり本屋を探したりしました。それで見つけたのがRだったわけでう。前職でS-PLUSやSPSSを使っていた人を横目で見ていたので親近感があったのかもしれません。ExcelデータをRに読み込ませます。Rを普通にインストールした後、gdataパッケージをインストールする必要があります。R起動後にlibrary(gdata)と入力しないと機能が使えません。library(gdata)と入力して以下のように表示されれば正常に機能が使える状態になったと思います。2.9.2次にディレクトリを移動します。起動直後はユーザのホームディレクトリにいるでしょう。私はその直下の「操業データ」というディレクトリにExcelデータを入れておきましたので、そこに移動します。setwd("操業データ")ちなみに以下のコマンドで現在のディレクトリのパス名を表示できます。getwd()やっとExcelデータを読み込むことになります。read.xls("091003.xls")なお、Excelシートの1行目にはデータ列名を2行目からデータが羅列したシートにしておきます。列名を日本語にしているとエラーになるようです。1バイト文字(英字数字記号)などにしておきましょう。私はここで数時間無駄にしました。データ欠落(空セル)があっても構いません。シートが複数あるExcelブックの場合、シート番号を指定して読み込ませることもできるようです。私は変なところでひっかからないために1ブック1シートにしました。データを読み込む処理に時間がかかるため、絶対この項目は使わないよ。いうデータはExcelの段階で列を削除しておいた方が無難です。ちなみに私が読み込ませた091003.xlsは5列5000行のデータです。air(初代)で読み込ませるのに5秒くらいだったと思います。dfはRで扱うデータの基礎であるデータフレームと呼ばれるものです。データの集合で列名や列番号でアクセスすることが可能です。ちなみにdfは変数名(オブジェクト名)なのでdf2だろうがfdだろうが何でもいいです。ちなみに日本語もいけちゃうようです。以下のように入力すると上記でExcelファイルから読み込んだデータ全体を表示することができます。df1列名だけ表示したければ以下のような感じ。df[,1]3〜6列名を表示したければ以下のような感じ。df[,3:6]1行1列のデータだけ表示したければdf[1,1]列名で指定することも可能。IDという列があったとすると。df$IDで、余談として。Rはプログラミングもできて、SCILABなんかもそうですが、スクリプト言語のような柔軟性をもっています。Excelからデータを読んできてその2〜3列目を表示して欲しい。いう場合は以下のようにも書けるようです。行列などのデータ集合を柔軟に扱えるところはSCILABといいRといい、いいですね。read.xls("091003.xls")[,2:3]次に簡単にdfの内容を分析してみます。欠値(Excelの空セル)は省く必要があるので、まず以下のコマンドで状況を見てみます。各列毎に度数分布が表示され最後に<NA>の個数が表示されます。ああ、このデータ項目には欠値が10個含まれているんだな。いったことが知る事ができます。sapply(df,table,exclude=NULL)もし、その場でデータを修正したければ(元のExcelデータを修正せずに)以下のコマンドが使えます。fix(df)欠値は邪魔なのでとりあえず除外します。以下のコマンドでdfのデータから欠値を含む行を除いたデータフレームを作ります。上記のsubset関数はいろいろな使い方ができると思います。それは後ほど書きます。以下の例ではdf2というデータの入れ物を新たに作りました。subset(df,complete.cases(df))で、次にやることと言えば、平均値や分散などを表示したくなりますね。Excelなら1つずつワークシート関数を使って。やるところですがRでは、そんなん面倒だからまとめちゃえ!というコマンドがあるようです。summary(df2)実行結果のサンプルを以下に示します。AとBというデータ列があったとします。データ列それぞれについて基本統計量を表示してくれます。:11.000で、df2からある条件を満たしたデータを取り出してdf3とします。ある条件を満たすデータを取り出すために、subsetくんを使います。Bという列が1であるデータだけを取り出してdf3に入れた例です。1)最後に散布図を描かせます。xlabやylabで軸ラベル名を指定することができます。日本語ラベルは表示できませんでした。何か指定すると表示できるかもしれません。df3[,4],xlab="A",ylab="B")とりあえずこれでおしまい。相関分析などこの先もどんどん楽して分析が進められます。ここに書いた手順もコレから先の話も上記の本にわかりやすく書かれていますので、オススメです。scilabもそうですし、今回のRもそうですが、OSSでこれだけ有用なエンジニアリング支援ツールが世の中に存在するわけですから利用しない手はないですね。した応用ならこれで十分だと思います。»プロフィールid:ke_takahashiソフトウェア開発、工作、面白ガジェットに興味があります。(1)はてなブログをはじめよう!ke_takahashiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。