在 R 数据框中将分类列的值设置为数值。


要将 R 数据框中分类列的值设置为数值,我们可以使用组合函数 c。

例如,如果我们有一个名为 df 的数据框,其中包含一个名为 C 的分类列,该列有两个类别:低和高,如果我们想用 1 和 10 来表示这些类别,则可以使用以下命令:

df$C<-c(Low=1,High=10)[df$C]

示例 1

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

Group<-sample(c("First","Second","Third"),20,replace=TRUE)
df1<-data.frame(Group)
df1

创建了以下数据框

   Group
1  Third
2  Second
3  First
4  Second
5  Second
6  First
7  Third
8  Third
9  First
10 Second
11 First
12 First
13 First
14 Second
15 First
16 First
17 First
18 Second
19 Second
20 Third

要将上面创建的数据框中 Group 列的值替换为数字,请将以下代码添加到上述代码片段中:

Group<-sample(c("First","Second","Third"),20,replace=TRUE)
df1<-data.frame(Group)
df1$Group<-c(First=1,Second=2,Third=3)[df1$Group]
df1

输出

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

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

示例 2

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

Level<-sample(c("Low","Medium","High"),20,replace=TRUE)
df2<-data.frame(Level)
df2

创建了以下数据框

   Level
1  Medium
2  Low
3  Low
4  High
5  Medium
6  Medium
7  Medium
8  Medium
9  Low
10 Low
11 Low
12 Low
13 Low
14 High
15 Medium
16 Medium
17 Low
18 Low
19 Medium
20 Medium

要将上面创建的数据框中 Level 列的值替换为数字,请将以下代码添加到上述代码片段中:

Level<-sample(c("Low","Medium","High"),20,replace=TRUE)
df2<-data.frame(Level)
df2$Level<-c(Low=5,Medium=15,High=20)[df2$Level]
df2

输出

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

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

更新于: 2021年11月3日

3K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告