在R语言中用dplyr的mutate结合str_split按分隔符拆分字符串
R语言使用dplyr拆分字符串为多字段的解决方案
需求说明
需要将数据框df_current中的data_current字段,按固定分隔符-拆分为FirstName、LastName、nino三个字段,同时保留原始字段,最终得到目标结构df_want。
原始数据
df_current <- data.frame(data_current = c("laura-smith-X12344G", "james-breen-Y12345G", "ben-thomas-G333334"))
解决方案
借助tidyverse生态中的dplyr管道和tidyr::separate函数即可实现,代码如下:
# 加载所需包 library(dplyr) library(tidyr) # 执行拆分并保留原字段 df_want <- df_current %>% separate( col = data_current, into = c("FirstName", "LastName", "nino"), sep = "-", remove = FALSE )
代码说明
separate函数用于按指定分隔符拆分单列到多列,天然适配dplyr的管道操作col参数指定要拆分的目标字段into参数定义拆分后的新字段名称,顺序与拆分后的字符串片段一一对应sep = "-"明确分隔符为-remove = FALSE设置保留原始的data_current字段,不自动移除
结果验证
执行上述代码后,df_want的结构与需求完全一致:
# 输出df_want > df_want data_current FirstName LastName nino 1 laura-smith-X12344G laura smith X12344G 2 james-breen-Y12345G james breen Y12345G 3 ben-thomas-G333334 ben thomas G333334
内容的提问来源于stack exchange,提问作者fe108
相关产品推荐
相关产品推荐

