我正在 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 的解决方案。
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))