我想从给定的下表数据创建两列。我希望第一列(例如 ID1)包含第一个“-”之前从左到右的所有字母或数字,第二列(ID2)包含从右到左开始第一个“-”之前的第一个字母或数字并将它们打印为字符。
val = c(1,2,3,4)
tor = c( "0001-NEW YORK , M.AVENUE, NY-U.S.A" ,
"0023-cARAVAGGIO-MALTA" ,
"009876-bUDAPEST-HUNGARY" ,NA)
DATA = tibble(val,tor)
结果表必须如下所示: |值| ID1 | ID2 | |:---- |:------:| -----:| | 1 | 0001|美国 | | 2 | 0023|马耳他 | | 3 | 009876 |匈牙利 | | 4 |不适用 |不适用 |
使用
separate_wider_delim()
的可能方法:
library(tidyverse)
val = c(1,2,3,4)
tor = c( "0001-NEW YORK , M.AVENUE, NY-U.S.A" ,
"0023-cARAVAGGIO-MALTA" ,
"009876-bUDAPEST-HUNGARY" ,NA)
DATA = tibble(val,tor)
DATA |>
separate_wider_delim(tor, delim = "-", names = c("ID1", "Not Needed", "ID2"))
#> # A tibble: 4 × 4
#> val ID1 `Not Needed` ID2
#> <dbl> <chr> <chr> <chr>
#> 1 1 0001 NEW YORK , M.AVENUE, NY U.S.A
#> 2 2 0023 cARAVAGGIO MALTA
#> 3 3 009876 bUDAPEST HUNGARY
#> 4 4 <NA> <NA> <NA>
创建于 2024-04-03,使用 reprex v2.1.0