RStudioではじめるRプログラミング入門/Garrett Grolemund他を読み始めました。詰まったところや、気になったところをメモしていきます。
前回:「RStudioで始めるRプログラム入門」のメモ(1,2章)
#3章:Rのオブジェクト
##型
例えば、普通に”1”という数字の型を判定すると、
> typeof(1)
[1] "double"
となり、doubleと判定されるが、コロンを使って配列を作ると
> typeof(1:4)
[1] "integer"
となり、integerとして認識されている。読み返してみるとP7に
コロン演算子は、2つの整数の間に含まれるすべての整数を返します。
と書いてあった。
また、前章で使ったseq関数で同じ数列を再現して判定すると、
> s = seq(1, 4, by=1)
> typeof(s)
[1] "double"
という結果になった。
##クラス
(2,2,3)の3次元arrayを作ると、そのクラスは
> ar <- array(c(11:14, 21:24, 31:34), dim=c(2, 2, 3))
> class(ar)
[1] "array"
となる。
次にこれを(3,4)の2次元配列にすると
> ar <- array(c(11:14, 21:24, 31:34), dim=c(3,4))
> class(ar)
[1] "matrix"
となり、行列として扱われる。
##リスト
リストの中にはリストを入れられる。教科書では2次元配列しか作っていないが、3次元配列も以下のように作れる。
> list <- list(100:110, "R", list(TRUE, FALSE, list(1:5)))
> list
[[1]]
[1] 100 101 102 103 104 105 106 107 108 109 110
[[2]]
[1] "R"
[[3]]
[[3]][[1]]
[1] TRUE
[[3]][[2]]
[1] FALSE
[[3]][[3]]
[[3]][[3]][[1]]
[1] 1 2 3 4 5
リストで行列を作るのか、データフレームを使うのかは時と場合によってちゃんと考えなきゃいけない。
#4章:Rの記法
##添字の始点
Pythonなどは添字の始点が0だが、Rはデータセットに限らず多次元配列もすべて1から始まる。確かにこっちのほうが数学的な操作は直感的でやりやすいかもしれない(主観)。
##shuffle関数について
4.3でShuffle関数なるもの
shuffle <- function(cards){
random <- sample(1:52, size=52)
cards[random, ]
}
を作るが、この関数を実行しても元のデータが書き換わることはない。当たり前だけど。