如何在 R 数据帧列中将两个单词之间的空格替换为下划线?


如果要将 R 数据帧列中两个单词之间的空格替换为下划线,我们可以使用 gsub 函数。例如,如果我们有一个名为 df 的数据帧,其中包含字符列 x,其中两个单词之间有一个空格,那么我们可以使用命令 df$x<-gsub(" ", "_",df$x) 来替换该空格。

示例

考虑下面这个数据帧 -

 在线演示

x1<-sample(c("id 1","id 2","id 3","id 4"),20,replace=TRUE)
x2<-rpois(20,5)
df1<-data.frame(x1,x2)
df1

输出

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

用下划线替换列 x1 中 id 和编号之间的空格 -

示例

df1$x1<-gsub(" ", "_", df1$x1)
df1

输出

    x1   x2
1 id_4   6
2 id_4   5
3 id_1   6
4 id_3   8
5 id_4  12
6 id_4   8
7 id_3   2
8 id_3   5
9 id_4   8
10 id_1  1
11 id_3  4
12 id_3  5
13 id_2  3
14 id_1  2
15 id_3  5
16 id_1  8
17 id_4  8
18 id_3  5
19 id_2  2
20 id_3  4

示例

 在线演示

y1<-sample(c("class 1","class 2","class 3"),20,replace=TRUE)
y2<-rnorm(20)
df2<-data.frame(y1,y2)
df2

输出

     y1         y2
1  class 1   0.62986928
2  class 2   1.65731515
3  class 3  -1.13406383
4  class 1  -0.35842133
5  class 1   0.58141698
6  class 3  -0.18424254
7  class 3  -1.05955455
8  class 2  -0.80841041
9  class 3   1.05838028
10 class 2  -1.06141883
11 class 3  -0.54195571
12 class 3  -0.18038280
13 class 2   0.75236011
14 class 2  -0.55374067
15 class 1   0.38737080
16 class 3   0.35892853
17 class 2  -0.44576804
18 class 1   0.62543133
19 class 2  -0.05862987
20 class 1  -0.01508226

用下划线替换列 y1 中 id 和编号之间的空格 -

示例

df2$y1<-gsub(" ", "_",df2$y1)
df2

输出

      y1        y2
1  class_1   0.62986928
2  class_2   1.65731515
3  class_3  -1.13406383
4  class_1  -0.35842133
5  class_1   0.58141698
6  class_3  -0.18424254
7  class_3  -1.05955455
8  class_2  -0.80841041
9  class_3   1.05838028
10 class_2  -1.06141883
11 class_3  -0.54195571
12 class_3  -0.18038280
13 class_2   0.75236011
14 class_2  -0.55374067
15 class_1   0.38737080
16 class_3   0.35892853
17 class_2  -0.44576804
18 class_1   0.62543133
19 class_2  -0.05862987
20 class_1  -0.01508226

更新于: 17-3-2021

2K+ 浏览量

开启您的职业生涯

完成本课程以取得认证

开始
广告