統計Rの勉強-R intro 3章

前回に引き続き3章

3章はオブジェクトの性質や属性と、その表示方法、変換方法が書いてある。
で、2.8節でオブジェクトの種類をあげているので、そこから書いてみる。
vectorとlistの違い。matrixとdata frameの違いがわかったので、結構収穫。

  • 主なオブジェクトは、vector、matrix、factor, list, data frame。function(関数)もオブジェクトの一つ。
  • すべてのオブジェクトが、modeとlengthの属性をもつ。
  • vector と list の違い
    • vectorはすべて同じアトミックなタイプの要素をもつ(文字だけ、数字だけ)
    • listは異なるタイプの要素を持っていても良い→統計結果を表すのに使う
  • matrix と data frameの違い
    • matrix は vectorの多次元版で、同じタイプの要素を持つ
    • data frame は 異なるタイプの要素を持っていて良い→読み込むデータをあらわすのに使う
  • classとmodeの違いがよくわからん。
            • -
2.8節「オブジェクト (objects)」
  • vector(ベクトル):よく使う。すべての要素は同じアトミックなモードを持つ。(モード=オブジェクトの型名のようなもの。アトミックなモード=再帰的に定義できないモード、数値、文字、論理値、複素数,,,)
  • matrix(行列), array(配列):多次元のベクトル。5章で詳しく扱う。
  • factor(因子):カテゴリデータを扱うもの。4章で扱う。
  • list(リスト):統計結果を見るとき良く使う。ベクトルのようだが要素は同じモードでなくともよいし、アトミックなモードでなくともよい。6.1節で扱う。
  • data frame(データフレーム):データ行列を表現するときに良く使う。マトリックスのようだが異なるモードの列をもてる。6.3節で扱う。

function(関数):これもオブジェクトの一つ。10章で書き方を扱う。

3節
3.1節

modeとlength=オブジェクトの基本的な属性、すべてのオブジェクトが持つ、暗黙的属性とも言う

  • mode=オブジェクトの種類
    • atomic mode=再帰的に定義できないmode(ex:「数値 (numeric)」or「複素数(complex)」or「論理値(logical)」 or 「文字 ( character)」or 「生データ(raw)」)
    • atomicでないmode=再帰的に定義できるmode(ex:list,matrix,,,)
z <- 0:9
mode(z) #zのmodeを知る
length(z) #zの長さを知る
attributes(z) #zのその他の属性を知る #この例では"NULL"が返る

#モードを変換する
digits <- as.character(z) #各要素を文字列に変換する
d <- as.integer(digits) #各要素を数値に変換する#これで、zとdは同じ
# 「as.なんとか」関数はたくさんあるみたい

#長さを伸ばす:数値の空ベクトルを作り、第3要素を7、ほかをNAとするベクトルになる
e<-numeric() #長さ0の数値ベクトル
e[3]<-7
#長さを切り詰める:偶数の添え字の位置にある要素だけから成る長さ5のベクトルになる
alpha <- c("a","b","c","d","e","f","g","h","i","j")
alpha  <-  alpha[2  *  1:5]
length(alpha) <- 3 #さらに要素を先頭から3つに切り詰める

attr(z, "dim") #特定の名前の属性を表示 # この例ではNULLが返る
attr(z, "dim") <- c(2,5) #2*5の行列としてみる #もとの要素数が10のベクトルから変換

#オブジェクトのクラス
# プログラミング時に使う。
#  "numeric", "logical", "character" , "list", "matrix", "array", "factor", "data.frame".
# たとえば、クラスを見てオブジェクトの表示方法を変える。
# 一時的にクラスを取り去りたいときは、unclass(object)とする。