如何用新值替换 R 数据框中的特定值?
要将R数据框中的特定值替换为新值,我们可以使用ifelse函数,其中新值将放置在条件之后,如果列值与条件不匹配,则将放置相同的列。例如,如果我们有一个名为df的数据框,其中包含具有20个值的列x,其中一些值为5,如果我们想用2替换5,那么我们可以使用命令df$x<-ifelse(df$x==5,2,df$x)
示例
考虑以下数据框-
ID<-1:20 x<-rpois(20,2) df1<-data.frame(ID,x) df1输出结果
ID x 1 1 2 2 2 2 3 3 2 4 4 4 5 5 2 6 6 2 7 7 2 8 8 2 9 9 1 10 10 2 11 11 0 12 12 2 13 13 4 14 14 4 15 15 4 16 16 0 17 17 2 18 18 3 19 19 0 20 20 3
用3替换列x中的值2-
示例
df1$x<-ifelse(df1$x==2,3,df1$x) df1输出结果
ID x 1 1 3 2 2 3 3 3 3 4 4 4 5 5 3 6 6 3 7 7 3 8 8 3 9 9 1 10 10 3 11 11 0 12 12 3 13 13 4 14 14 4 15 15 4 16 16 0 17 17 3 18 18 3 19 19 0 20 20 3
示例
S.No<-1:20 y<-rpois(20,5) df2<-data.frame(S.No,y) df2输出结果
S.No y 1 1 4 2 2 5 3 3 5 4 4 7 5 5 9 6 6 6 7 7 2 8 8 3 9 9 1 10 10 4 11 11 9 12 12 3 13 13 3 14 14 6 15 15 8 16 16 6 17 17 4 18 18 5 19 19 8 20 20 3
将y列中的值4替换为0-
示例
df2$y<-ifelse(df2$y==4,0,df2$y) df2输出结果
S.No y 1 1 0 2 2 5 3 3 5 4 4 7 5 5 9 6 6 6 7 7 2 8 8 3 9 9 1 10 10 0 11 11 9 12 12 3 13 13 3 14 14 6 15 15 8 16 16 6 17 17 0 18 18 5 19 19 8 20 20 3