The Beginning Of The End

そこはかとなく技術的なことを

「みんなのR」でRの基礎からお勉強1

「みんなのR」を購入しました

  • まだ始めたばかりですが、基本的なツールのインストール、操作、設定から丁寧に書かれていてとてもわかり易いです。
  • また統計に関する項目としても、基本的な項目があるように思います。まずはこの1冊をきっちりやれば次に繋がりそうな気がします。
  • アウトプットについては、RStudioで実行したログが中心になります。
  • 主に私の備忘録的なもののアウトプットです。

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

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

基本的な数学

1 + 1
1 + 2 + 3
3 * 7 * 2
4/2
4/3
4 * 6 + 5
( 4 * 6) + 5
4 * (6 + 5)

変数の代入

一般的な代入方法

x <- 2
x

= も使用できる

y = 5
y

向きを反対にしてもできる

3 -> z
z

代入演算子を連続して用いることもできる

a <- b <- 6
a = b = 7
## assign関数を使った代入
assign("j", 4)
j

関数の削除

remove(j)
rm(j)
j

データ型

主に使われる4つのデータ型(numeric / character / Date, POSIXct / logical)

変数が保持するデータの型を調べたいときは、class関数を使う

class(a)

numeric

numericは、整数と少数、正数と負数、ゼロを取り扱う

numericかどうか確認する

is.numeric(a)

使用頻度低いintegerは、正数のみを取り扱う

変数に整数を代入するには、数字の後ろにLをつける必要がある

i <- 5
j <- 5L
> class(i)
[1] "numeric"
> class(j)
[1] "integer"
> 

integerかどうか確認する

> is.integer(i)
[1] FALSE
> is.integer(j)
[1] TRUE
> 

jがintegerのとき、iはnumericのテストも通ることに注意する

> is.integer(i)
[1] FALSE
> is.integer(j)
[1] TRUE
> 

文字データ

Rは文字データを扱う基本的な型として、characterとfactorがある

characterは大文字と小文字を区別します

x <- "data"
x
> is.character(x)
[1] TRUE
> is.numeric(x)
[1] FALSE
> is.factor(x)
[1] FALSE
> 
y <- factor("data")
y
> is.character(y)
[1] FALSE
> is.numeric(y)
[1] FALSE
> is.factor(y)
[1] TRUE
>

characterまたはnumericの文字の長さを調べるには、nchar関数を使う

> class(x)
[1] "character"
> class(y)
[1] "factor"
> nchar(x)
[1] 4
> nchar(y)
nchar(y) でエラー:  'nchar()' は文字ベクトルを要求します 

日付

Rでは日付と時間を扱う型が複数あり、最も役に立つ型はDateとPOSIXct

as.numericおよびas.Date関数は、単にオブジェクトの形式を変えるだけでなく。根本的な型の変更を行います

> date1 <- as.Date("2015-07-19")
> date1
[1] "2015-07-19"
> class(date1)
[1] "Date"
> as.numeric(date1)
[1] 16635
> date2 <- as.POSIXct("2015-07-19")
> date2
[1] "2015-07-19 JST"
> class(date2)
[1] "POSIXct" "POSIXt" 
> as.numeric(date2)
[1] 1437231600
class(date1)
class(as.numeric(date1))

論理値

logicalはTRUEもしくはFALSEのどちらかの値をのみをとるデータを表します

数値的には、TRUEは1で、FALSEは0と同じ

> TRUE  * 5
[1] 5
> FALSE * 5
[1] 0

他の型と同様に、is.logical関数を使ってlogicalかどうかをテスト

k <- TRUE
class(k)
is.logical(k)

Rでは、TRUE/FALSEを短縮してT/Fと記述できるが、あまり使わないらしい

> l <- T
> m <- F
> class(l)
[1] "logical"
> class(m)
[1] "logical"
> l * 5
[1] 5
> m * 5
[1] 0

2つの数値または文字を比較すると、結果としてlogicalが得られる

> 2 == 3
[1] FALSE
> 2 != 3
[1] TRUE
> 2 < 3
[1] TRUE
> 2 <= 3
[1] TRUE
> 2 > 3
[1] FALSE
> 2 >= 3
[1] FALSE
> "data" == "stats"
[1] FALSE
> "data" < "stats"
[1] TRUE