这个
tidyverse
这样做的方法是
tidyr::separate_wider_regex()
:
我们可以使用命名的捕获组来指定的部分
tor
我们想要保留的。正如文档所述,
patterns
是
命名字符矢量,其中名称变为列名,值是与矢量内容匹配的正则表达式。
未命名的组件将匹配,但不会包含在输出中。
强调我的。在这种情况下:
tor_pattern <- c(
ID1 = "\\d+", # any digits at the start
"-.+-", # discard the part between hyphens
ID2 = ".+$" # whatever appears after this until the end
)
这给了我们:
DATA |>
tidyr::separate_wider_regex(
cols = tor,
patterns = tor_pattern
)
# # A tibble: 4 Ã 4
# val ID1 ID2 food
# <dbl> <chr> <chr> <chr>
# 1 1 0001 U.S.A1 pizza
# 2 2 0023 ?2MALTA pasta
# 3 3 009876 !HUNGARY berger
# 4 4 NA NA pizza