*個人用勉強メモです。
変数に数値などを代入、削除する。
assign("j", 4)
rm(j) #remove(j)でも良い
Rには主に4つのデータ型がある。
numeric、character、Data/POSIXct、logical
数値numericは他言語におけるfloatやdouble。
整数のみにするときはintegerを使う、数字の次にLをつける必要あり
eg) i <- 5L
文字データとしてcharactorとfactorがある。
factorには”(クオート)がつかない文字が保持される。
日付データはDate、日付と時間を保持するにはPOSIXct。
論理値logicalはTRUEかFALSEを表現する。
数値的にはTRUEは1、FALSEは0を意味する。
==:同じ値か
!=:異なる値か
<=:以下か
<:未満か
Rにはベクトルという型がある。c(1, 2, 3, 4)のように使う。
シンプルな入れ物であり且つ、Rにおいてはベクトル化された言語には自動的にループされる(便利らしい)。
ベクトルに次元はないので、縦横はない。以下例。
x <- c(1,2,3)
y <- c(4,5,6)
x + y
[1] 5, 6, 7
x * y
[1] 4, 10, 18
factorとcharactorの違いはベクトルに現れる。
q <- c("A", "B", "C", "C","C", "D", "E","E") #この時点ではcharactorのベクトル
qFactor <- as.factor(q)
qFactor
[1] A B C C C D E E
Levels: A B C D E
クオートがなくなり、重複のないレベルが加えられている。
factorは一意の値を保持するので、変数を減らすことができる。
欠損値にはNAとNULLがある。
NAはベクトルの要素になるが、NULLは本当に空になる。
パイプ:パッケージmagrittrから動かせる、演算子は%>%
その他のデータ構造にdata.frame、matrix、list、arrayがある。
data.frameはExcelと同じで、行と列をもつ。
z <- c("Hello", "world", "Thanks")
DF <- data.frame(x,y,z)
DF
x y z
1 1 4 Hello
2 2 5 world
3 3 6 Thanks
行列を持つのでそれぞれの名前を確認できる、colnames/rownames
これらは名前であり、データには含まれない。例えば、
colnames(DF) <- NULL
で 列名を消すことができる。
リストlistはオブジェクトの型に関係なく格納できる。
numericやcharactorだけでなく、data.frameやlist自身も含めることができる。
list()に入れた順番に表示される。
> list(1,2,3,4)
1
[1] 1
2
[1] 2
3
[1] 3
4
[1] 4
> list(c(1,2,3,4))
1
[1] 1 2 3 4
数学的構造としてmatrixがあるが、data.frameとの違いは、全列が同じ要素でなければいけないこと。(全部数値データのようなものでないとダメ)
> A <- matrix(1:10, nrow=5)
> A
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
最後の方はarray、多次元のvectorを示す。
array内dimの数値は1つ目は行、2つ目は列、3つ目は残りの次元を表す。
> B <- array(1:8, dim=c(2,2,2))
> B
, , 1
[,1] [,2]
[1,] 1 3
[2,] 2 4
, , 2
[,1] [,2]
[1,] 5 7
[2,] 6 8