我正在尝试使用stringr
函数替换列中的确切字符串。
我尝试的数据集是这样的:
data <- data.frame(
column = c("Value", "Values", "Value", "Values")
)
data
column
1 Value
2 Values
3 Value
4 Values
Run Code Online (Sandbox Code Playgroud)
我想用“值”替换“值”。我尝试过str_replace(data$column, "Value", "Values")
,但这会产生以下不需要的替换:
[1] "Values" "Valuess" "Values" "Valuess"
Run Code Online (Sandbox Code Playgroud)
我希望输出是:
[1] "Values" "Values" "Values" "Values"
Run Code Online (Sandbox Code Playgroud)
以下是使用正则表达式的几种可能性:
x <- c("value", "values")
str_replace(x, "value$", "values") #method 1
str_replace(x, "value\\b", "values") #method 2
str_replace(x, "value(?!s)", "values") #method 3
Run Code Online (Sandbox Code Playgroud)
以上所有返回相同
[1] "values" "values"
Run Code Online (Sandbox Code Playgroud)
简短的解释:第一个方法在字符串末尾查找“值”。该符号$
与字符串的末尾匹配。
第二种方法查找“值”,后跟单词边界。
第三种方法查找“value”,后跟除符号“s”之外的任何内容。
您可以在此处找到有关 stringr 和正则表达式的有用备忘单 。希望这可以帮助。
归档时间: |
|
查看次数: |
7021 次 |
最近记录: |