在 R 中使用 mutate 和 str_split 分割带有分隔符的字符串

问题描述 投票:0回答:1

我正在 R 中工作。我想分割一个字符串,例如将“laura-smith-X12344G”转换为名字、姓氏和尼诺。总是有“-”分隔符。

df_current <- data.frame(data_current = c("laura-smith-X12344G", "james-breen-Y12345G", "ben-thomas-G333334"))

df_want <- data.frame(data_current = c("laura-smith-X12344G", "james-breen-Y12345G", "ben-thomas-G333334"), 
                      FirstName = c("laura",  "james", "ben"),
                      LastName = c("smith",  "breen", "thomas"),
                      nino = c("X12344G", "Y12345G", "G333334"))

数据想要:

数据_当前 名字 姓氏 尼诺
劳拉-史密斯-X12344G 劳拉 史密斯 Y12345G
詹姆斯布林-Y12345G 詹姆斯 布林 Y12345G
本托马斯-G333334 托马斯 G333334

我想要一个适合 dplyr mutate 的解决方案。

r stringr
1个回答
0
投票
df_want <- df_current %>%
           mutate(FirstName = stringr::str_split(data_current, "-") %>% map_chr(., 1)) %>%
           mutate(LastName = stringr::str_split(data_current, "-") %>% map_chr(., 2)) %>%
           mutate(nino = stringr::str_split(data_current, "-") %>% map_chr(., 3))

© www.soinside.com 2019 - 2024. All rights reserved.