我在 R 中有一个名为 df 的数据框:
name=c("john","mary","stef","paul","helen")
var =c("[1127] pizza" ,
"[1000ui] berger" ,
"[5748A!] pasta" ,
"[8245A&] sweet" ,
"[9893] drink" )
df=tibble(name,var);df
导致:
# A tibble: 5 × 2
name var
<chr> <chr>
1 john [1127] pizza
2 mary [1000ui] berger
3 stef [5748A!] pasta
4 paul [8245A&] sweet
5 helen [9893] drink
我想删除列 var 中每行值 [...] 中的字符串并保留其余部分。理想情况下,我希望数据框(tibble)看起来像这样:
名字 | var |
---|---|
约翰 | 披萨 |
玛丽 | 伯格 |
史蒂夫 | 面食 |
保罗 | 甜 |
海伦 | 喝 |
我如何使用 R 中的字符串包或 tidyverse 函数中的其他函数来实现它?
我认为这是
word
包中的 stringr
函数的一个很好的用例:
library(stringr)
library(dplyr)
df %>%
mutate(var = word(var,2))
name var
<chr> <chr>
1 john pizza
2 mary berger
3 stef pasta
4 paul sweet
5 helen drink