如何从R中的字符串中获取前n个字符

Anh*_*Anh 4 string r tidyverse

我想为每行提取每个字符串的三个字母,df如下所示

示例:

df <- data.frame(name = c('Jame Bond', "Maria Taylor", "Micheal Balack"))
df
            name
1      Jame Bond
2   Maria Taylor
3 Micheal Balack
Run Code Online (Sandbox Code Playgroud)

想要的

df_new 
        name
1      Jam_Bon
2      Mar_Tay
3      Mic_Bal
Run Code Online (Sandbox Code Playgroud)

使用 tidyverse 有什么建议吗?

小智 5

library(stringr)
library(dplyr)

df$name %>% 
  str_extract_all("(?<=(^|[:space:]))[:alpha:]{3}") %>% 
  map_chr(~ str_c(.x, collapse = "_"))
Run Code Online (Sandbox Code Playgroud)

stringr备忘单对于解决这些类型的问题非常有用。 https://www.rstudio.com/resources/cheatsheets/

由reprex 包(v2.0.1)创建于 2022-03-26