现在位置: 首页 > R 教程 > 正文

R gsub() 函数 - 字符串替换

R 语言实例 R 语言实例

R gsub() 函数用于全局替换字符串中匹配的部分。

sub() 只替换第一个匹配项,gsub() 替换所有匹配项。

gsub() 函数语法格式如下:

gsub(pattern, replacement, x)
sub(pattern, replacement, x)

参数说明:

  • pattern 要匹配的模式(支持正则表达式)。

  • replacement 替换成的字符串。

  • x 输入字符串向量。

实例

text <- "RUNOOB 是个好网站,RUNOOB 教编程,RUNOOB 值得推荐"

# gsub 全局替换
result1 <- gsub("RUNOOB", "菜鸟", text)
print("全局替换:")
print(result1)

# sub 只替换第一个
result2 <- sub("RUNOOB", "菜鸟", text)
print("只替换第一个:")
print(result2)

执行以上代码输出结果为:

[1] "全局替换:"
[1] "菜鸟 是个好网站,菜鸟 教编程,菜鸟 值得推荐"
[1] "只替换第一个:"
[1] "菜鸟 是个好网站,RUNOOB 教编程,RUNOOB 值得推荐"

gsub() 在数据清理中非常实用:

实例

# 清理电话号码格式
phone_numbers <- c("123-456-7890", "987.654.3210",
                   "555 666 7777")
# 将所有非数字字符替换为 -
clean <- gsub("[^0-9]", "-", phone_numbers)
print("统一格式:")
print(clean)

# 去除多余空格
text_with_spaces <- "  Hello    RUNOOB   World  "
trimmed <- gsub("\\s+", " ", text_with_spaces)
print("去除多余空格:")
print(trim(trimmed))

执行以上代码输出结果为:

[1] "统一格式:"
[1] "123-456-7890" "987-654-3210" "555-666-7777"
[1] "去除多余空格:"
[1] "Hello RUNOOB World"

R 语言实例 R 语言实例