根据 R 数据框中的条件将数字列转换为二进制因子

r programmingserver side programmingprogramming

要根据 R 数据框中的条件将数字列转换为二进制因子,我们可以使用 factor 函数和 ifelse 函数。

例如,如果我们有一个名为 df 的数据框,其中包含一个数字列,例如 Num,并且我们想将其转换为二进制因子,如果 Num 小于 100,则它将是 Minor,否则是 Major,那么我们可以使用下面给出的命令 −

df$Num_Factor<-factor(ifelse(df$Num_Factor<100,"Minor","Major"))

示例 1

以下代码片段创建了一个示例数据框−

x<-sample(1:50,20)
df1<-data.frame(x)
df1

创建以下数据框

   x
 1 4
 2 13
 3 50
 4 19
 5 43
 6 42
 7 18
 8 17
 9 27
10 23
11 31
12 37
13 5
14 28
15 1
16 6
17 30
18 35
19 22
20 10

要将 x 转换为上面创建的数据框中的因子列,请将以下代码添加到上面的代码片段 −

x<-sample(1:50,20)
df1<-data.frame(x)
df1$x_Factor<-factor(ifelse(df1$x<25,"Low","High"))
df1

输出

如果将上面给出的所有代码片段作为单个程序执行,则会生成以下输出 −

    x x_Factor
 1  4  Low
 2 13 Low
 3 50 High
 4 19 Low
 5 43 High
 6 42 High
 7 18 Low
 8 17 Low
 9 27 High
10 23 Low
11 31 High
12 37 High
13 5  Low
14 28 High
15 1  Low
16 6  Low
17 30 High
18 35 High
19 22 Low
20 10 Low

示例 2

以下代码片段创建了一个示例数据框 −

y<-round(rnorm(20,1,0.25),1)
df2<-data.frame(y)
df2

创建了以下数据框

    y
 1 1.4
 2 0.9
 3 1.0
 4 0.6
 5 1.1
 6 0.7
 7 0.9
 8 1.2
 9 0.8
10 1.1
11 0.7
12 0.4
13 1.1
14 0.8
15 1.1
16 0.7
17 1.7
18 0.8
19 1.1
20 0.6

要将 y 转换为上面创建的数据框中的因子列,请将以下代码添加到上面的代码片段 −

y<-round(rnorm(20,1,0.25),1)
df2<-data.frame(y)
df2$y_Factor<-factor(ifelse(df2$y<1,"Rejected","Accepted"))
df2

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

    y  y_Factor
 1 1.4 Accepted
 2 0.9 Rejected
 3 1.0 Accepted
 4 0.6 Rejected
 5 1.1 Accepted
 6 0.7 Rejected
 7 0.9 Rejected
 8 1.2 Accepted
 9 0.8 Rejected
10 1.1 Accepted
11 0.7 Rejected
12 0.4 Rejected
13 1.1 Accepted
14 0.8 Rejected
15 1.1 Accepted
16 0.7 Rejected
17 1.7 Accepted
18 0.8 Rejected
19 1.1 Accepted
20 0.6 Rejected

相关文章