R gsub() 函数 - 字符串替换
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)
# 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))
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 语言实例