如何在 r 中创建分类变量(附示例)


您可以使用以下语法在 R 中创建分类变量

 #create categorical variable from scratch
cat_variable <- factor(c(' A ', ' B ', ' C ', ' D '))

#create categorical variable (with two possible values) from existing variable
cat_variable <- as. factor ( ifelse (existing_variable < 4, 1, 0))

#create categorical variable (with multiple possible values) from existing variable
cat_variable <- as. factor ( ifelse (existing_variable < 3, ' A ',
                          ifelse (existing_variable < 4, ' B ', 
                          ifelse (existing_variable < 5, ' C ', 
                          ifelse (existing_variable < 6, ' D ',0)))))

以下示例展示了如何在实践中使用此语法。

示例 1:从头开始创建分类变量

以下代码展示了如何从头开始创建分类变量:

 #create data frame
df <- data. frame (var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 10, 12),
                 var4=c(14, 16, 22, 19, 18))

#view data frame
df

var1 var2 var3 var4
1 1 7 3 14
2 3 7 3 16
3 3 8 6 22
4 4 3 10 19
5 5 2 12 18

#add categorical variable named 'type' to data frame
df$type <- factor(c(' A ', ' B ', ' B ', ' C ', ' D '))

#view updated data frame
df

var1 var2 var3 var4 type
1 1 7 3 14 A
2 3 7 3 16 B
3 3 8 6 22 B
4 4 3 10 19 C
5 5 2 12 18 D

示例 2:从现有变量创建分类变量(具有两个值)

以下代码显示如何从数据框中的现有变量创建分类变量:

 #create data frame
df <- data. frame (var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 10, 12),
                 var4=c(14, 16, 22, 19, 18))

#view data frame
df

var1 var2 var3 var4
1 1 7 3 14
2 3 7 3 16
3 3 8 6 22
4 4 3 10 19
5 5 2 12 18

#add categorical variable named 'type' using values from 'var4' column
df$type <- as. factor ( ifelse (df$var1 < 4, 1, 0))

#view updated data frame
df

var1 var2 var3 var4 type
1 1 7 3 14 1
2 3 7 3 16 1
3 3 8 6 22 1
4 4 3 10 19 0
5 5 2 12 18 0

使用ifelse()语句,我们创建了一个名为“type”的新分类变量,它采用以下值:

  • 如果“var1”列的值小于 4,则为1
  • 如果“var1”列中的值不小于 4,则为0

示例 3:从现有变量创建分类变量(具有多个值)

以下代码显示如何从数据框中的现有变量创建分类变量(具有多个值):

 #create data frame
df <- data. frame (var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 10, 12),
                 var4=c(14, 16, 22, 19, 18))

#view data frame
df

var1 var2 var3 var4
1 1 7 3 14
2 3 7 3 16
3 3 8 6 22
4 4 3 10 19
5 5 2 12 18

#add categorical variable named 'type' using values from 'var4' column
df$type <- as. factor ( ifelse (df$var1 < 3, ' A ',
                     ifelse (df$var1 < 4, ' B ', 
                     ifelse (df$var1 < 5, ' C ', 
                     ifelse (df$var1 < 6, ' D ', ' E ')))))

#view updated data frame
df

var1 var2 var3 var4 type
1 1 7 3 14 A
2 3 7 3 16 B
3 3 8 6 22 B
4 4 3 10 19 C
5 5 2 12 18 D

使用ifelse()语句,我们创建了一个名为“type”的新分类变量,它采用以下值:

  • 如果“var1”列的值小于 3,则为“ A ”。
  • 否则,如果“var1”列中的值小于 4,则为“ B ”。
  • 否则,如果“var1”列中的值小于 5,则为“ C ”。
  • 否则,如果“var1”列中的值小于 6,则为“ D ”。
  • 否则为“ E ”。

其他资源

如何在 R 中创建虚拟变量
R中如何将因子转换为字符
如何在R中将字符转换为数字

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注