我阅读了正则表达式和 Hadley Wickham 的stringr
and dplyr
包,但不知道如何让它工作。
我在数据框中保存了图书馆流通数据,索书号作为字符变量。我想将最初的大写字母作为一个新变量,并将字母和句点之间的数字作为第二个新变量。
Call_Num
HV5822.H4 C47 Circulating Collection, 3rd Floor
QE511.4 .G53 1982 Circulating Collection, 3rd Floor
TL515 .M63 Circulating Collection, 3rd Floor
D753 .F4 Circulating Collection, 3rd Floor
DB89.F7 D4 Circulating Collection, 3rd Floor
使用stringi
包,这将是一种选择。由于你的目标停留在字符串的开头,stri_extract_first()
会工作得很好。[:alpha:]{1,}
表示包含多个字母的字母序列。和stri_extract_first()
,您可以识别第一个字母序列。同样,您可以使用以下命令找到第一个数字序列stri_extract_first(x, regex = "\\d{1,}")
.
x <- c("HV5822.H4 C47 Circulating Collection, 3rd Floor",
"QE511.4 .G53 1982 Circulating Collection, 3rd Floor",
"TL515 .M63 Circulating Collection, 3rd Floor",
"D753 .F4 Circulating Collection, 3rd Floor",
"DB89.F7 D4 Circulating Collection, 3rd Floor")
library(stringi)
data.frame(alpha = stri_extract_first(x, regex = "[:alpha:]{1,}"),
number = stri_extract_first(x, regex = "\\d{1,}"))
# alpha number
#1 HV 5822
#2 QE 511
#3 TL 515
#4 D 753
#5 DB 89
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)