如何针对数据帧中列的某些元素替换字符串中的空格?
多数情况下,字符串的数据格式不佳,我们需要进行适当的处理以方便后续分析。有时字符串列中会有一些值使用多余的空格,这并不必要,从而导致其与其他列值不匹配。为了移除这些空格,我们可以使用 `lapply` 和 `gsub` 函数。
示例
考虑以下数据帧 −
x1<-rep(c("A 1","A2","A 3","A4","A5"),times=4)
x2<-rep(c("#1","# 2","#3","#4"),each=5)
x3<-rep(c(5,7,8,12,15,18,22,24,31,39),times=2)
df<-data.frame(x1,x2,x3)
df
x1 x2 x3
1 A1 #1 5
2 A2 #1 7
3 A3 #1 8
4 A4 #1 12
5 A5 #1 15
6 A1 #2 18
7 A2 #2 22
8 A3 #2 24
9 A4 #2 31
10 A5 #2 39
11 A1 #3 5
12 A2 #3 7
13 A3 #3 8
14 A4 #3 12
15 A5 #3 15
16 A1 #4 18
17 A2 #4 22
18 A3 #4 24
19 A4 #4 31
20 A5 #4 39仅替换第 2 列中的空格 −
df[-c(1,3)] <- lapply(df[-c(1,3)], gsub, pattern = " ", replacement = "", fixed = TRUE) df x1 x2 x3 1 A1 #1 5 2 A2 #1 7 3 A3 #1 8 4 A4 #1 12 5 A5 #1 15 6 A1 #2 18 7 A2 #2 22 8 A3 #2 24 9 A4 #2 31 10 A5 #2 39 11 A1 #3 5 12 A2 #3 7 13 A3 #3 8 14 A4 #3 12 15 A5 #3 15 16 A1 #4 18 17 A2 #4 22 18 A3 #4 24 19 A4 #4 31 20 A5 #4 39
替换所有列中的空格 −
df[] <- lapply(df, gsub, pattern = " ", replacement = "", fixed = TRUE) df x1 x2 x3 1 A1 #1 5 2 A2 #1 7 3 A3 #1 8 4 A4 #1 12 5 A5 #1 15 6 A1 #2 18 7 A2 #2 22 8 A3 #2 24 9 A4 #2 31 10 A5 #2 39 11 A1 #3 5 12 A2 #3 7 13 A3 #3 8 14 A4 #3 12 15 A5 #3 15 16 A1 #4 18 17 A2 #4 22 18 A3 #4 24 19 A4 #4 31 20 A5 #4 39
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP