eme*_*hex 3 regex r stringr tidyverse
我有看起来像这样的数据:
df <- tribble(
~name, ~value,
"Jake Lake MLP", 10,
"Bay May CE", 5,
"Drake Cake Jr. DSF", 9.1,
"Sam Ram IR QQQZ", 1
)
Run Code Online (Sandbox Code Playgroud)
我想修剪所有的名字,使它们是:
"Jake Lake",
"Bay May",
"Drake Cake Jr.",
"Sam Ram IR"
Run Code Online (Sandbox Code Playgroud)
基本上删除最后一个空格之后的所有内容。
我试过:
df %>% mutate(name = str_replace(name, "\\s.*$", ""))
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的!
我们可以用 sub
df %>%
mutate(name = sub("\\s+[^ ]+$", "", name))
Run Code Online (Sandbox Code Playgroud)
或相同的模式 str_replace
df %>%
mutate(name = str_replace(name, "\\s[^ ]+$", ""))
# A tibble: 4 × 2
# name value
# <chr> <dbl>
#1 Jake Lake 10.0
#2 Bay May 5.0
#3 Drake Cake Jr. 9.1
#4 Sam Ram IR 1.0
Run Code Online (Sandbox Code Playgroud)
该模式表示一个空格 ( \\s) 后跟一个或多个非空格(否则它可以\\S+)直到字符串的末尾并将其替换为空白""。在 OP 的代码中,它是非特定的 ( .*)。
| 归档时间: |
|
| 查看次数: |
3445 次 |
| 最近记录: |