R言語

【R言語】factor型の使い方・まとめ

  1. HOME >
  2. R言語 >

【R言語】factor型の使い方・まとめ

スポンサーリンク

この記事では、R言語特有のfactor型(因子型)の操作方法について解説していきます。

この記事では以下の操作方法を扱っています。

factorの作成からlevelsの変更などを紹介しています。

この記事で学べる事

  • factorの作成
  • levelsの変更
  • labelsの変更
  • levelsの取得
  • levelsの数の取得
  • 順序付きのfactorの作成
  • factorの型の変更

また、この記事で扱うRスクリプトは以下からダウンロードできます。

factor型

以下の、関数factorを用いることでfactor型を作成したり変換することができます。

名前の通り、factor型はlevelsの要素から成るカテゴリカルデータを表現します。

またlabelsによって対応するlevelsの要素に別の名前を付けることが可能です。

factor(x = character(), levels, labels = levels, exclude = NA, ordered = is.ordered(x), nmax = NA)

関数factorの引数
引数説明
xfactor型に変換するベクトル。
levels一意な値から成るcharacter型のベクトル。xがとる値。
labelscharacter型のベクトル。levelsの値に対応付けるラベル。
excludelevelsを構成する際に排除する値。
orderedlogical型。順序付きのfactorを作成するかどうか。
nmaxlevelsの数の上限。

実行例

上で紹介した関数の使用例について見ていきます。

factorの作成

factorを作成するには関数factorを用います。

以下、"a", "b", "c"から成るcharacter型のベクトルのfactor(因子)型を作成する例です。

関数factorを実行すると、3つの文字をlevelsに持つfactorを生成することができます。

上記の実行例は以下の通りです。実行結果の9行目から分かるように、"a", "b", "c"の3つの要素から成るベクトルcharsのfactorを作成しています。

levelsの変更

使用する頻度はあまりないですが、factor型のlevelsの変更方法を紹介しておきます。

以下の5行目のように、関数factorの引数levelsに変更後の値を渡すことでlevelsを変更することができます。

levelsにない要素はすべてNAに変換されます。

実行結果は以下の通りです。

labelsの変更

引数labelsを設定することでfactorのlabelsを変更することが可能です。

levelsの要素のインデックスに対応するようにlabelsが設定されます。

実行結果は以下の通りです。"A", "B", "C"のlabelsを持つfactorが"alpha", "beta", "gamma"のlabelsのfactorに変更されているのが分かります。

levelsの取得

factorのlevelsを取得したい場合は、関数levelsを用います。

関数levelsの引数にfactorを指定すると、levelsを取得することができます。

実行例は以下の通りです。charは"a", "b", "c"のlevelsから成るfactorであるため、関数levelsを実行すると、"a", "b", "c"から成るベクトルが返ってきます。

levelsの数の取得

levelsの取得に続いて、levelsの数の取得について紹介します。

levelsの取得と同様に、関数nlevelsを用いることでfactorのlevelsの数を取得することができます。

以下、実行結果です。

順序付きのfactor

また、引数orederedをTRUEにすることで、順序付きのfactorを作成することができます。

引数levelsで指定した順番で順序が与えられます。左から右の順で大きくなります。

次の例の"small", "medium", "large" のように、順序関係があるfactorを生成したいときに用います。

上記の実行結果は以下の通りです。

"small"は"large"より小さくなるように4行目の引数levelsorderedで宣言しているので、最後の論理演算はTRUEとなります。

factorの型の変換

最後にfactor型の型の変換方法について見ていきます。

factor型を他の型(numeric、character)に変換する例を以下にまとめました。

関数as.numericas.characterを用いることでfactor型をそれぞれnumeric、character型に変換することができます。

実行結果は以下の通りです。factor型からcharacter型に変換する例の実行結果です。

次はnumeric型への変換の実行結果です。

ただし、numeric型に変換する際は、一度as.characterで文字列に変換する必要があります。character型に変換しないでas.numericを実行すると次のように、levelsのインデックスに変換されてしまいます。

まとめ

R言語でfactor型の操作方法について解説しました。

関数factorでfactorを作成することができます。

引数levelsで因子の要素を設定し、lablesで各要素に対応するラベルを設定することができます。

またorderedをTRUEにすることで、順序付きのfactorを作成することもできます。

スポンサーリンク

  • この記事を書いた人
  • 最新記事

usagi-san

統計学とゲームとかをメインに解説していくよ。 数式とかプログラミングコードにミスがあったり質問があったりする場合はコメントで受け付けます。すぐに対応します。

-R言語
-,