R で数値を因数に変換する方法 (例付き)
R で数値変数を階乗変数に変換するために使用できる方法は 2 つあります。
方法 1: as.factor() を使用する
df$factor_variable <- as. factor (df$numeric_variable)
これにより、数値変数が、元の数値変数の一意の値の数と同じレベル数を持つ因子変数に変換されます。
方法 2:cut() を使用する
df$factor_variable <- cut(df$numeric_variable, 3 , labels=c(' lab1 ', ' lab2 ', ' lab3 '))
この特定の例では、数値変数を 3 つの等間隔の値に「切り取る」ことによって、数値変数を階乗変数に変換します。
次の例は、R の次のデータ フレームで各メソッドを実際に使用する方法を示しています。
#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'C', 'D'),
points=c(12, 15, 22, 29, 35, 24, 11, 24))
#view data frame
df
team points
1 to 12
2 to 15
3 B 22
4 B 29
5 C 35
6 C 24
7 C 11
8 D 24
#view structure of data frame
str(df)
'data.frame': 8 obs. of 2 variables:
$ team: chr "A" "A" "B" "B" ...
$ points: num 12 15 22 29 35 24 11 24
例 1: as.factor() を使用して数値を係数に変換する
次のコードは、 as.factor()を使用してポイント列を数値から因子に変換する方法を示しています。
#convert points column from numeric to factor
df$points <- as. factor (df$points)
#view updated data frame
df
team points
1 to 12
2 to 15
3 B 22
4 B 29
5 C 35
6 C 24
7 C 11
8 D 24
#view updated structure of data frame
str(df)
'data.frame': 8 obs. of 2 variables:
$ team: chr "A" "A" "B" "B" ...
$ points: Factor w/ 7 levels "11","12","15",..: 2 3 4 6 7 5 1 5
str()関数を使用してデータ フレームの構造を視覚化すると、ポイントの列が列内の 7 つの一意の数値を表す 7 つの異なるレベルを持つ要素になっていることがわかります。
例 2: Cut() を使用して数値を係数に変換する
次のコードは、 cut()を使用してポイントの列を数値変数から 3 レベルの因子変数に変換する方法を示しています。
#convert points column from numeric to factor with three levels
df$points <- cut(df$points, 3 , labels=c(' OK ', ' Good ', ' Great '))
#view updated data frame
df
team points
1 A OK
2 A OK
3 B Good
4 B Great
5 C Great
6 C Good
7 C OK
8 D Good
#view updated structure of data frame
str(df)
'data.frame': 8 obs. of 2 variables:
$ team: chr "A" "A" "B" "B" ...
$ points: Factor w/ 3 levels "OK","Good","Great": 1 1 2 3 3 2 1 2
結果から、ポイント変数が数値変数から 3 つのレベルと次のラベルを持つ因子変数に変換されたことがわかります。
- “よし”
- “良い”
- “素晴らしい”
この例では 3 つのレベルを使用することに注意してください。ただし、 cut()関数の3を別の値に置き換えることにより、数値変数を必要な数のレベルに自由に切り分けることができます。
追加リソース
次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。