如何在 R 数据框列中将文字书写的数字替换为数字?

r programmingserver side programmingprogramming更新于 2025/6/24 9:07:17

要将 R 数据框列中文字书写的数字替换为数字,我们可以使用 within 函数。

例如,如果我们有一个名为 df 的数据框,其中包含一列(例如 X),其中包含用文字书写的数字(从 1 到 5),那么我们可以使用以下命令将它们转换为数字 −

within(df,X<-factor(X,labels=c(1,2,3,4,5)))

示例 1

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

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

创建以下数据框 −

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

要将 x 中的单词替换为数字,请将以下代码添加到上面的代码片段中 −

x<-sample(c("First","Second","Third"),20,replace=TRUE)
df1<-data.frame(x)
within(df1,x<-factor(x,labels=c(1,2,3)))

输出

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

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

示例 2

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

y<-sample(c("I","II","III","IV"),20,replace=TRUE)
df2<-data.frame(y)
df2

创建以下数据框 −

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

要将 y 中的罗马数字替换为数字,请将以下代码添加到上述代码片段中 −

y<-sample(c("I","II","III","IV"),20,replace=TRUE)
df2<-data.frame(y)
within(df2,y<-factor(y,labels=c(1,2,3,4)))

输出

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

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

相关文章