English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

R 因子

因子は、異なるカテゴリのデータ型を格納するために使用されます。例えば、人の性別には男と女の2つのカテゴリがあり、年齢では未成年と成人に分けることができます。

R言語で因子を作成するには factor() 関数を使用し、ベクトルを引数として指定します。

factor() 関数の構文:

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

パラメータ説明:

  • x:ベクトル。

  • levels:各レベル値を指定します、指定しない場合は x の異なる値から求められます。

  • labels:レベルのラベル、指定しない場合は各レベル値に対応する文字列を使用します。

  • exclude:除外する文字。

  • ordered:論理値、レベルが順序付きであるかを指定します。

  • nmax:レベルの上限数量。

以下の例では、文字型ベクトルを因子に変換しています:

x <- c("男", "女", "男", "男",  "女")
sex <- factor(x)
print(sex)
print(is.factor(sex))

以下のコードを実行すると、出力結果が:

[1] 男 女 男 男 女
レベル: 男 女
[1] TRUE

以下の例では、因子のレベルを c('男','女') に設定しています:

x <- c("男", "女", "男", "男",  "女",levels=c('男','女'))
sex <- factor(x)
print(sex)
print(is.factor(sex))

以下のコードを実行すると、出力結果が:

レベル1 レベル2 
男      女      男      男      女      男      女 
レベル: 男 女
[1] TRUE

因子レベルラベル

次に、labels パラメータを使用して各因子レベルにラベルを追加します、labels パラメータの文字列順序は levels パラメータの文字列順序と一致する必要があります、例えば:

sex=factor(c('f','m','f','f','m'),levels=c('f','m'),labels=c('female','male'),ordered=TRUE)
print(sex)

以下のコードを実行すると、出力結果が:

[1] 女性 男性   女性 女性 男性  
レベル: 女性 < 男性

因子レベル生成

私たちは gl() 関数を使用して因子レベルを生成することができます、文法形式は以下の通りです:

gl(n, k, length = n*k, labels = seq_len(n), ordered = FALSE)

パラメータ説明:

  • n: レベルの数を設定する

  • k: 各レベルが繰り返される回数を設定する

  • length: 長さを設定する

  • labels: レベルの値を設定する

  • ordered: レベルが並べ替えられた順序であるかどうかを設定する、ボルン値。

v <- gl(3, 4, labels = c("Google", "w3codebox","Taobao"))
print(v)

以下のコードを実行すると、出力結果が:

 [1] Google Google Google Google w3codebox w3codebox w3codebox w3codebox 淘宝 淘宝
[11] 淘宝 淘宝
レベル: Google w3codebox 淘宝