如何删除R数据框列中的字符?

要删除R数据帧列中的字符,我们可以使用gsub函数,该函数会将字符替换为空白。例如,如果我们有一个名为df的数据框,其中包含一个字符列,例如x,每个值中都有一个字符ID,则可以使用命令gsub(“ ID”,“”,as.character(df $X))。

例1

考虑以下数据帧-

> 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

例2

> 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