如何在R数据框中用数字替换二分列中的单词?


二分列可以用“是/否”、“好/坏”、“对/错”等词表示。为了用数字(例如1和0)替换这些词,我们可以使用ifelse函数。

例如,如果我们有一个名为df的数据框,其中包含一列Binary,其值为“是”和“否”,那么我们可以使用以下命令将“是”替换为1,“否”替换为0:

df$Binary<-ifelse(df$Binary=="Yes",1,0)

示例1

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

x<-sample(c("Yes","No"),20,replace=TRUE)
df1<-data.frame(x)
df1

创建了以下数据框:

    x
1  Yes
2  Yes
3  Yes
4  Yes
5   No
6  Yes
7  Yes
8  Yes
9  Yes
10 Yes
11 Yes
12  No
13 Yes
14  No
15  No
16 Yes
17  No
18 Yes
19 Yes
20 Yes

要将单词“是”替换为1,“否”替换为0,请将以下代码添加到上面的代码片段中:

x<-sample(c("Yes","No"),20,replace=TRUE)
df1<-data.frame(x)
df1$x<-ifelse(df1$x=="Yes",1,0)
df1

输出

如果您将上面给出的所有代码片段作为一个程序执行,它将生成以下输出:

   x
1  1
2  1
3  1
4  1
5  0
6  1
7  1
8  1
9  1
10 1
11 1
12 0
13 1
14 0
15 0
16 1
17 0
18 1
19 1
20 1

示例2

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

y<-sample(c("Good","Bad"),20,replace=TRUE)
df2<-data.frame(y)
df2

创建了以下数据框:

   y
1  Bad
2  Bad
3  Bad
4  Good
5  Good
6  Good
7  Good
8  Bad
9  Bad
10 Bad
11 Bad
12 Bad
13 Good
14 Bad
15 Good
16 Good
17 Good
18 Bad
19 Good
20 Good

要将单词“好”替换为1,“坏”替换为0,请将以下代码添加到上面的代码片段中:

y<-sample(c("Good","Bad"),20,replace=TRUE)
df2<-data.frame(y)
df2$y<-ifelse(df2$y=="Good",1,0)
df2

输出

如果您将上面给出的所有代码片段作为一个程序执行,它将生成以下输出:

   y
1  0
2  0
3  0
4  1
5  1
6  1
7  1
8  0
9  0
10 0
11 0
12 0
13 1
14 0
15 1
16 1
17 1
18 0
19 1
20 1

更新于:2021年11月9日

浏览量:350

启动你的职业生涯

完成课程获得认证

开始学习
广告