セクシーデータサイエンス

データ解析やプログラミングを勉強する日記!

数ページだけ本を開いたよ!Rの因子型

昨日は忘年会だったから本を数ページだけ進めた🍻

factor

Rのfactor , 別名、因子型、カテゴリー型

見た目は文字列に似てるけど、
factor型だとsummarytableで個数を数えるのに便利

> summary(iris$Species)
    setosa versicolor  virginica 
        50         50         50 

オプション ordered を使うと
順序づけもできる。 label は各factorの名前のようなもので、ordered=TRUE とするとlabelにかいた順番で順序がつく。

> a <- factor(c("good", "nice", "bad", "good"),
+   labels=c("bad", "good", "nice"),
+   ordered = TRUE)
> a
[1] good nice bad  good
Levels: bad < good < nice

表示してみると不等号で順序が表された。

数値をすきな範囲で区切って分類できる cut も便利そう。
グラフ書くときに解釈しやすい感じでくぎれる。

# 適当なデータを用意
> sample(1:80, 20) -> age
> sample(1:80, 20) 
 [1] 68 69 67 38 66  4 70 26 50 54 11 23 55  6 43 58 72 31 80 74

# カットする
# 20歳以下、20〜60歳以下、60超の3種類に分かれる
> age2 <- cut(age, breaks=c(0, 20, 60, Inf),
+   right=TRUE, labels=c("kodomo", "otona", "koureisha"),
+   ordered=TRUE)
> age2
 [1] kodomo    otona     koureisha otona     koureisha koureisha
 [7] otona     kodomo    otona     otona     kodomo    kodomo   
[13] otona     otona     koureisha otona     kodomo    otona    
[19] otona     otona    
Levels: kodomo < otona < koureisha

順序付き因子、
使ったことなかったれど、検定で順序が必要なときに使えるかな?