web系[欲しいものを自分で作る]模索の日々

javascriptとかphpとか使って色々作って行きます。触ったことのある言語は、C, C++, Java, python, Ruby, Processing

Excelだけでデータ分析してるひとに”R”を勧めたい

データ分析スキルにもうワンポイント欲しいと思った

 最近、転職活動をしてたんですけれども、職務経験から何度かデータアナリストをしてみないかとお誘いがありました。
早速、データ分析経験とかスキルとかまとめて話に行ったところ、自分でデータをHiveQLのクエリ叩いて取ってきて分析してましたー、ってところくらいまではウケがいいのですが、そのデータをExcelで分析してました、っていうとどうも反応よくないなぁという印象がありました。

まぁ、確かにExcelでデータ分析してましたというピンキリなわけでちょっと採用担当としてイメージが湧きにくいようです。
個人的にはExcelじゃできないような高難易度な分析が必要な場面とかはそこまで多くないんじゃないかなぁとも思いますが、会社によっては何々という分析ツールが使える人だけがデータアナリストをやってる、みたいなものが必要な場合もあるような気がしました。


 というわけで、自分も採用をうならせる分析ツールを使えるようにしておこうかなぁ、なんて妄想をしていたら、大学時代にちょっと使っていたRを思い出しました。
早速、今の業務でR使うならどんな感じになるかと思って使ってみたところ、Excelとは違う便利な点が様々あって、併用するとなかなか成果あがりそう、なんて気がしました。
以下、ExcelにはないRの良さを少しまとめようと思います。


Rのいいところ

CSVのまま作業が進められる

 抽出してきたデータはCSVとかいうこと、よくあると思うんです。ExcelだとCSVでデータ落としてきたら開いて元々の分析用のBookにコピーして整形して、テーブルにして、色調整して、列タイトル変えて、、、、と何かと準備に時間かかると思うんですね。
RならCSV落として、同じディレクトリに保存しちゃえばコマンド一つで読み込んであとは自在に使えます。

データの合計とか平均とか諸々の基本計算を1行のコードでまとめてやってくれる

 summary関数というものがあってこれで1行コードを書くと、平均値、中央値、最大値、最小値などをまとめて表示してくれます。

グラフの描画も楽

 plot関数でとりあえずグラフを表示してくれる。
このとりあえずのグラフがまた優秀でシンプルでみやすいんですよ!
Excelだとデータの量とか表の形式によっては見た目の調整が必要なシーン多くて作業が増えることも多々ありますが、Rならあまり気にせずできます。

無料!そしてmacにもwindowsにも対応

 家のPCに有料のOfficeがなくてもRをメインにしていれば勉強も仕事の続きもできます。


ということでExcelもいいけどRも使ってみたらいいんじゃない?って人はこんな人!

  • 取ってきたデータの状態を手っ取り早く知りたい人
  • データ1つ1つの値よりもデータトレンドや異常値に関してチェックが必要な人
  • Excelの他にもデータ分析ツール使ってみたいという人
次回からは実際に使い方とか紹介していこうと思います

Mac
R for Mac OS X

Windows
Download R-3.2.2 for Windows. The R-project for statistical computing.

みんなのR -データ分析と統計解析の新しい教科書-

みんなのR -データ分析と統計解析の新しい教科書-

ユーザー項目の追加と削除

現在、ゼミの卒業生サイトをWordPressで作っています。それでユーザを卒業年ごとに分類して管理しておこうと思い、ユーザ情報の項目を増やせないか調べてみました。


どうやら「functions.php」にコードを追加するということはすぐに分かりました!!
場所は、他のコードの途中に差し込んだりしない限り大丈夫です。分かりやすく、1番下とかがベターでしょうか。追記するサンプルコードはこんな感じです。

<?php

/* プロフィール項目の削除と追加 */
function update_profile_fields( $contactmethods ) {
	
        /*項目の削除*/
	unset($contactmethods['aim']);
	unset($contactmethods['jabber']);
	unset($contactmethods['yim']);

	/*項目の追加*/
	$contactmethods['alumni'] = '卒業年';
	$contactmethods['twitter'] = 'Twitter';
	$contactmethods['facebook'] = 'Facebook';
	
	return $contactmethods;
}
add_filter('user_contactmethods','update_profile_fields',10,1);

?>


しかし、こんなエラーがでてしまいました。

Parse error: syntax error, unexpected '<' in /pub/WWW/wordpress/wp-includes/functions.php on line 3856


うぅむ。なんどやってもうまく行かないので困っていたのですが、実は「functions.php」は「wp-includes/functions.php」だけでなく、「wp-content/themes/twentytwelve/functions.php」というように各テーマフォルダにも存在していました。早速、テーマフォルダ内の「functions.php」に先ほどのコードを挿入したところ、うまくいきました。うまく行けば、プロフィール項目が画像のようになります。


f:id:hujuu:20130213175025p:plain


そもそもなんで、「wp-includes/functions.php」のほうにコードを追加してしまったかというと、参考書を読んで作ったテーマには「functions.php」がなかったために、起こった悲劇でした。僕と同じように最初から「functions.php」が無かった人は、自分で同名のファイルをテーマフォルダに作成して、そこにさっきのコードだけ書き込めばそれだけでいけます!

WordPressのテンプレートに画像を挿入

前回に似たタイトルなのですが、今回はサイトの大枠に関係するテンプレートへの画像挿入の仕方を話していきます。


早速ですが、皆さんもテーマのテンプレートファイルは下記のようなディレクトリにあると思います。
「public_html/wordpress/wp-content/themes/sample/index.php
(↑僕の今回の環境です。)


もちろんここで僕は、画像を挿入するにはずっとHTMLでやって来たことと同様、index.phpにはこんな感じで相対パスを打てばいいのだと思ってやってみました。

<img src="images/logo.gif" alt="ロゴマーク" />


しかし、、、これでは見事に表示されず、悩んだのですがよく考えてみるとアクセスしたときに表示されているサイトは、テンプレートフォルダからテンプレートを引っ張って来ている訳です。ということはサイトを表示している時の階層はテンプレートのある階層ではないので、テンプレートからみた相対パスでは画像にたどりつけなかったのです。


調べてみるとどうやら、さっきの相対パスの頭に

<?php bloginfo('template_url'); ?>/


をつけるとうまく行くらしいとのこと。実際やってみたら見事、成功しました!

<img src="<?php bloginfo('template_url'); ?>/images/logo.gif" alt="ロゴマーク" />

※ちなみにテンプレートフォルダのCSSから背景を画像で指定するときは、CSSからの相対パスで問題なく動きます。

WordPressで記事に画像を挿入

先日、WordPressを導入した後、早速、記事を書いてみました。文字だけの記事はすぐに出来たのですが、画像をアップロードしようとしたところ、エラーが出てしまいました。エラーは以下の通り...

ディレクトリ wp-content/uploads を作成できませんでした。この親ディレクトリのアクセス権はサーバーによる書き込みを許可していますか ?

じゃ僕がディレクトリを作ってやるよ!と思いFTPを開いてwp-contentの中にuploadsのディレクトリを作ってあげました。しかし再びエラーが...

アップロードしたファイルをwordpress/wp-content/uploadsに移動できませんでした。


こうなったらもうパーミッションが問題そうなので、変更することにしました。


1、サーバーにリモートログインして、パーミッションを変更する「wp-content」のあるディレクトリまで行きます。


2、次にパーミッションを変更すべく、コマンドを打ちます!
全てのユーザーが「読み込み」「書き込み」「実行」できるように、「777」を指定します。

% chmod 777 wp-content


" ls -l "でパーミッションを確認して、こうなっていれば、大丈夫です。

f:id:hujuu:20130205214646p:plain

3、同様にして、「uploads」のパーミッションも「777」に変更します。
※「707」でも大丈夫でした。


変更すると画像がアップロード出来るようになりました!!

WordPress導入

WordPressを自分のサイトに導入する方法を説明して行きます。

ちなみにWordPressとは?
WordPress (ワードプレス) は、オープンソースのブログ/CMS プラットフォームです。”(公式より)ということで、多くの人は自分のサイト内部にブログを導入するのに利用しているようです。自分のサイトにWordPressでブログを導入できると、バナー広告も付きませんし、デザインにも自由がききます。

それではWordPressのインストール方法について、説明して行きます。
まず、動作環境の確認です。

ーーーーーーーーーーーーーーーーーーーーーーーーー
WordPress 日本語版バージョン 3.2〜3.5 の動作環境
  PHP バージョン 5.2.4 以上
  MySQL バージョン 5.0 以上
ーーーーーーーーーーーーーーーーーーーーーーーーー
※(2013/02/04確認)

動作環境を満たしていたら、インストールを始めます。

1、まず、前回の方法でサーバーにリモートログインします。


2、ログインが出来たら次はインストールしたい階層に移動します。(今回はpublic_htmlに移動しました。)移動したらWordPressをダウンロードし、展開します。

% cd public_html
% wget http://ja.wordpress.org/wordpress-3.5.1-ja.tar.gz
% tar xvzf wordpress-3.5.1-ja.tar.gz


3、次にWordPressの設定ファイルを編集して行きます。

% cd wordpress
% mv wp-config-sample.php wp-config.php
% emacs wp-config.php


4、wp-config.phpを開いたら、中程にある4項目を編集します。
( define('〇〇', '▲▲'); の▲▲の側を変更します。)

/** WordPress のためのデータベース名 */
define('DB_NAME', 'example_wp');
/** MySQL データベースのユーザー名 */
define('DB_USER', 'example_wp');
/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'hogehoge');
/** MySQL のホスト名 */
define('DB_HOST', 'webpubdb');


変更が完了したら、保存して閉じます。
emacsコマンド:保存・・・control + x → control + w , 終了・・・control + x → control + c)


5、最後にインストールスクリプトの実行です。ブラウザで http://example.jp/wordpress/wp-admin/install.php を開いて画面に従って管理者名や管理用パスワードを設定します。


これでWordPressのインストールは完了です。

リモートログインの方法

 今日は、Macの「ターミナル」f:id:hujuu:20130203144432p:plain

を使って、サーバーへSSHリモートログインする方法を説明します。

 

1、まずはターミナルを開きます。

f:id:hujuu:20130203144425p:plain

2、次にsshコマンドを入力します。

ssh ログイン名@ログインサーバ名”

画像だと "ssh ログイン名@webedit.sfc.keio.ac.jp" になっています。

f:id:hujuu:20130203145759p:plain

3、enterを押すと、パスワードを求められるので入力してください。

初めて接続し警告が表示された場合は 、"yes" と入力、Enterを押します。

Passwordが無事、合っていれば、接続が完了します。

f:id:hujuu:20130203150650p:plain