要删除R数据帧列中的字符,我们可以使用gsub函数,该函数会将字符替换为空白。例如,如果我们有一个名为df的数据框,其中包含一个字符列,例如x,每个值中都有一个字符ID,则可以使用命令gsub(“ ID”,“”,as.character(df $X))。
考虑以下数据帧-
> x1<-sample(c("Male1","Female1"),20,replace=TRUE) > x2<-rpois(20,5) > df1<-data.frame(x1,x2) > df1输出结果
x1 x2 1 Male1 8 2 Female1 4 3 Male1 9 4 Male1 2 5 Male1 7 6 Female1 5 7 Male1 3 8 Female1 6 9 Female1 4 10 Female1 3 11 Male1 5 12 Male1 4 13 Female1 7 14 Male1 6 15 Female1 5 16 Male1 3 17 Female1 10 18 Female1 4 19 Male1 7 20 Female1 3
从x1中的所有值中删除1-
> df1$x1<-gsub("1","",as.character(df1$x1)) > df1输出结果
x1 x2 1 Male 8 2 Female 4 3 Male 9 4 Male 2 5 Male 7 6 Female 5 7 Male 3 8 Female 6 9 Female 4 10 Female 3 11 Male 5 12 Male 4 13 Female 7 14 Male 6 15 Female 5 16 Male 3 17 Female 10 18 Female 4 19 Male 7 20 Female 3
> y1<-sample(c("Hot#","Cold#"),20,replace=TRUE) > y2<-rnorm(20) > df2<-data.frame(y1,y2) > df2输出结果
y1 y2 1 Cold# 0.1725073 2 Hot# -0.4692023 3 Hot# 2.4386160 4 Cold# -1.3592685 5 Hot# 0.4500866 6 Cold# -0.7023989 7 Cold# 0.7383042 8 Hot# -1.7325754 9 Hot# 0.2053521 10 Hot# -2.0123750 11 Cold# -0.7203218 12 Hot# 1.2389079 13 Cold# -0.6401144 14 Cold# -0.6136728 15 Hot# 1.2877643 16 Cold# 0.4291966 17 Cold# 1.8316996 18 Hot# 0.8165865 19 Cold# -0.3978465 20 Cold# -0.9352063
从y1中的所有值中删除#-
> df2$y1<-gsub("#","",as.character(df2$y1)) > df2输出结果
y1 y2 1 Cold 0.1725073 2 Hot -0.4692023 3 Hot 2.4386160 4 Cold -1.3592685 5 Hot 0.4500866 6 Cold -0.7023989 7 Cold 0.7383042 8 Hot -1.7325754 9 Hot 0.2053521 10 Hot -2.0123750 11 Cold -0.7203218 12 Hot 1.2389079 13 Cold -0.6401144 14 Cold -0.6136728 15 Hot 1.2877643 16 Cold 0.4291966 17 Cold 1.8316996 18 Hot 0.8165865 19 Cold -0.3978465 20 Cold -0.9352063