String 截断/修剪/重新格式化邮政编码
我有一个数据框,其中包含一列不同格式的邮政编码:12345、12345-、12345-6789、12345-6789和123456789。我只需要前5位数字-12345。如何重新格式化/修剪/截断,使它们的格式相同?邮政编码是一个重要因素String 截断/修剪/重新格式化邮政编码,string,r,zipcode,String,R,Zipcode,我有一个数据框,其中包含一列不同格式的邮政编码:12345、12345-、12345-6789、12345-6789和123456789。我只需要前5位数字-12345。如何重新格式化/修剪/截断,使它们的格式相同?邮政编码是一个重要因素 df<- data.frame(list(id = c(1:5), zip = c("12345", "12345-", "12345 - 6789", "12345-6789", "123456789"))) df如果您确定这五个数字之前没有任何
df<- data.frame(list(id = c(1:5), zip = c("12345", "12345-", "12345 - 6789", "12345-6789", "123456789")))
df如果您确定这五个数字之前没有任何内容,您可以使用stri\u sub
功能,从stringi
软件包如下:
stri_sub("123456789",1,5)
## [1] "12345"
要仅从字符串向量中提取数字,请使用此软件包中的另一个函数:
stri_extract_all_charclass("aa bb12345lfda124\t43","Nd")
## [[1]]
## [1] "12345" "124" "43"
此函数提取与类匹配的所有子字符串。在本例中,“Nd”-数字,但有更多类,请查看文档:)无需附加软件包,strtrim
非常适合:
strtrim(df$zip, 5)
## [1] "12345" "12345" "12345" "12345" "12345"
谢谢,这很有效。有没有办法确保前五位数字之前没有任何内容?是的,有:)现在看看我的帖子!:)