根据 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