ふとした機会に自分のRスキルを診断したところ、かなり低いことが判明…。そこで基礎から改めて勉強することにした。
Rの勉強を0からやり直すことにしました。 #はてなブログ #R #統計学
やりなおしのR(001/X) - 「大人の教養・知識・気付き」を伸ばすブログ
https://t.co/pb4gmnCWuY
今回は以下を参考にした。
http://ds.k.kyoto-u.ac.jp/e-learning_files/data_analysis_basic/slide-a02.pdf
はじめに:Rとは?
データ解析に特化したプログラミング言語。
特徴 |
||
(1) | フリーウェアで無償利用可能。 | |
(2) | オープンソフトウェア。個人が開発・改良できる。 | |
(3) | プログラミング言語で自由にロジックが記述可能、汎用性が高い。 | |
(4) | プログラミングに慣れてない人にはとっつきにくい。 | |
(5) | ソフトウェアR上で記述し、対話式である。 | |
(6) | 行列計算、ベクトル計算は速く、それらを用いる統計処理は高速。 | |
(7) | それ以外のループや条件分岐などを自分で書くと大変遅い。 | |
(8) | GUIである程度できるRコマンダーや,統合開発環境のRStudioなどもある。 |
1. プログラムの書き方の基礎
1.7 ループ
- for:ベクトルの要素がすべて代入されるまで実施。
# 変数iにベクトルvの各要素が1つずつ代入され実行される for(i in v){ }
- repeat :無限にループする。
# 無限に実行される repeat{ }
- while:条件文が真である限り実行される。
# breakはループを終了させる (repeatループでは必須) # nextはループの1つのサイクルをここで終了させる while(条件文){ }
1.8 関数
関数の中で新しく代入した変数は,関数内でのみ有効(関数の外でも有効であってほしいならば、代入に«-を用いる。)引数のデフォルト値を指定するならば「=」を使う。
関数名 <- function(引数){ 処理 return(関数が返す値) }
1.9 リストとデータフレーム
ベクトルは同じ型(種類)の要素のみからなり、ベクトルの2次元版は行列と呼んだ。リストはベクトルや行列、配列など異なる構造のデータを集めて 11個のオブジェクトにしたものである。
- リストは色々な種類の要素が含まれていても良い
- リストの2次元版をデータフレームという
- データフレーム型の中身の詳細を知りたい場合は str() が便利である。
- データフレーム型から行列に変換するには data.matrix() を用いる。
- 行列からデータフレーム型に変換するには data.frame() を用いる
A <- matrix(c(1,2,3,4,5,6), nrow = 2, ncol = 3) A <- data.frame(A) B <- data.matrix(A) str(A)
2. 統計処理
- 空:R では何もないことをNULLと表現する。配列の初期値や names 属性などの属性を取り除くのに使われたり、for などの反復演算を行うときの配列やデータリストの初期値として用いられたりする。
x <- c() print(x)
- 欠損値・不定データ:欠損データはNA、非数はNaN、無限大はInfで表現する。
# データの欠損を表す NA
# 数では表せないことを表す 0/0
# 無限大になる場合はInfがある 1/0
# 1 とは異なる 1 + 0i
- 文字列character:1文字ではなく,引用符 "" で囲んだ文字列が単位。文字列中にダブルクオートまたはシングルクオートを含めるにはこれらの文字の前にバックスラッシュ( \ または \ ) を置けばよい。
- 論理値:logical。論理値は TRUE (真) と FALSE (偽) の値を取る。これらはそれぞれT、Fと略記することも出来る
- 日付:Date型。R では日付データと文字列を区別している。
2.1. オブジェクトの表示
オブジェクト名(変数名)だけを入力してもオブジェクトの中身は表示されるものの、以下に紹介する関数を用いることで出力形式をカスタマイズすることが出来る。
- オブジェクトを表示する:print()
- オブジェクトを表示する基本的な関数は:print()
※関数 page() で別ウインドウにオブジェクトの値を表示することも出来る。長いデータなどを表示する場合に有用である。
- 文字列を表示する:cat()
文字列を表示する基本的な関数は cat() である。cat() で表示すれはダブルクオート""はつかない。文字列中で \\ ,\t ,\n ,\f (もしくは \\ ,\t ,\n ,\f )を用いると、それぞれ\マーク、タブ、改行、改ページ文字を出力する。
# 作業ディレクトリ指定の際に有用 cat("cd C:\\Document and Settings\\usr\\ \n")