読者です 読者をやめる 読者になる 読者になる

Rprogrammingのメモ

R メモ

ちょっとコーセラのRの一番簡単な授業を見てみました。

 

私自身はR初心者なので、わからない部分も多いのですが、とりあえずWeek1のdata typesのサマリーまできたので、自分の勉強用に適当にメモしたコードを置いておきます。

やった範囲は特にデータを扱うわけではなく、Rのデータにはこんなタイプのものがあるんやで、くらいのものだと思います。

なので、動画で見るよりも、どっかのサイトや本を見た方が早いかも、と思って途中から流しながら見ていました。

基本的にコーセラは英語での授業なのですが、今回のRprogrammingでは字幕の選択肢に日本語があるので意味をキャッチするのにとても助かりました。

ちなみにコーセラは最近知って、おもしろそうな授業をポチポチしていったら、大学生の4月病みたいに大量の授業抱える羽目になっています。。。

 

サマリー

データのタイプ

・atomic classes: numeric, logical, character, integer, complex

vector, lists

・factors

・missing value

・data flames

・names

 

> x <-1

> print(x)

[1] 1

> x

[1] 1

> x <-5

> x

[1] 5

> x<-1:20

> x

 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20

 

・関数c()はオブジェクトのベクトルを作る

・関数vector()を用いる

 

> x<-vector("numeric", length=10)

> x

> y

 

・Mixing object

[1] "1.7" "a" 

> y<-c(true,2)

 エラー:  オブジェクト 'true' がありません ##trueは大文字

> y<-c(TRUE,2)

> y

[1] 1 2

> y<-c("a",TRUE)

> y

[1] "a"    "TRUE"

> x<-0.6

> class(x)

[1] "numeric"

> as.numeric(x)

[1] 0.6

> as.logical(x)

[1] TRUE

 

・explicit coercion 明白な強制型

> x<-0:6

> class(x)

[1] "integer"

> as.numeric(x)

[1] 0 1 2 3 4 5 6

> as.logical(x)

[1] FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE

> as.character(x)

[1] "0" "1" "2" "3" "4" "5" "6"

 

・Non sensual coercion results in NA

> x<-c("a","b","c")

> as.numeric

function (x, ...)  .Primitive("as.double")

> as.numeric(x)

[1] NA NA NA

 警告メッセージ:

 強制変換により NA が生成されました 

> as.logical(x)

[1] NA NA NA

> as.complex(x)

[1] NA NA NA

 警告メッセージ:

 強制変換により NA が生成されました 

 

・List

> x<-list(1,"a",TRUE,1+4i)

> x

1

[1] 1

 

2

[1] "a"

 

3

[1] TRUE

 

4

[1] 1+4i

 

マトリックス

> m<-matrix(nrow=2,ncol=3)

> m

     [,1] [,2] [,3]

[1,]   NA   NA   NA

[2,]   NA   NA   NA

> dim(x)

NULL

> dim(m)

[1] 2 3

> attributes(m)

$dim

[1] 2 3

 

マトリックス(cont’d)

> m<-matrix(1:6,nrow=2,ncol=3)

> m

     [,1] [,2] [,3]

[1,]    1    3    5

[2,]    2    4    6

> m<-1:10

> m

 [1]  1  2  3  4  5  6  7  8  9 10

> dim(m)<-c(2,5)

> m

     [,1] [,2] [,3] [,4] [,5]

[1,]    1    3    5    7    9

[2,]    2    4    6    8   10

 

.cbind-ing and rbind-ing コラムとロー

> x<-1:3

> y<-10:12

> cbind(x,y)

     x  y

[1,] 1 10

[2,] 2 11

[3,] 3 12

> rbind(x,y)

  [,1] [,2] [,3]

x    1    2    3

y   10   11   12

 

・ファクター

> x<-factor(c("yes","yes","no","yes","no"))

> x

[1] yes yes no  yes no

Levels: no yes

> table(x)

x

 no yes

  2   3

> unclass(x)

[1] 2 2 1 2 1

attr(,"levels")

[1] "no"  "yes"

 

・ラベルを付ける

> x<-factor(c("yes","yes","no","yes","no"),levels=c("yes","no"))

> x

[1] yes yes no  yes no

Levels: yes no

 

・Missing value 欠損値

> x<-c(1,2,NA,10,3)

> is.na(x)

[1] FALSE FALSE  TRUE FALSE FALSE

> is.nan(x)

[1] FALSE FALSE FALSE FALSE FALSE

> x<-c(1,2,NaN,NA,4)

> is.na(x)

[1] FALSE FALSE  TRUE  TRUE FALSE

> is.nan(x)

[1] FALSE FALSE  TRUE FALSE FALSE

 

・データフレーム

> x<-data.frame(foo=1:4,bar=c(T,T,F,F))

> x

  foo   bar

1   1  TRUE

2   2  TRUE

3   3 FALSE

4   4 FALSE

> nrow(x)

[1] 4

> ncol(x)

[1] 2

 

・名前を付ける

> x<-list(a=1,b=2,c=3)

> x

$a

[1] 1

 

$b

[1] 2

 

$c

[1] 3

 

> m<-matrix(1:4,nrow=2,ncol=2)

> dimnames(m)<-list(c("a","b"),c("c","d"))

> m

  c d

a 1 3

b 2 4

 

 

Rはタイピングがおもしろいっす。個人的にSTATAよりも好きかもしれない。