我的数据如下所示:
df <- tibble(code = c("B12345A", "B12345C"))
我想创建第二个变量,比如“code_2”,它采用第一个变量中字符串的第一个和最后一个字符,如下所示:
df <- df %>%
mutate(code_2 = str_sub(code, 1, 1),
code_3 = str_sub(code, 7, 7)) %>%
unite(code_2, 2:3, sep = "", remove = TRUE)
但是肯定有一种更简洁的方法可以使用 dplyr 工具实现上述目标吗?(我想我也可以创建一个函数来实现这一点,但我也不知道该怎么做。)在此先感谢您的帮助。
mutate(code_2 = paste0(substr(code,1,1), substr(code,7,7)))`
或者,如果字符串的长度可以变化:
mutate(code_2 = paste0(substr(code,1,1), substr(code,nchar(code),nchar(code))))
如果您更喜欢包中的功能,请更改substr
为。str_sub
stringr
您还可以使用正则表达式:
mutate(code_2 = gsub("(.).*(.)", "\\1\\2", code))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句