如何用 R 数据框列中的数字替换用单词写的数字?
要用R数据框列中的数字替换用单词写的数字,我们可以在函数内使用。
例如,如果我们有一个名为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