Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 截断/修剪/重新格式化邮政编码_String_R_Zipcode - Fatal编程技术网

String 截断/修剪/重新格式化邮政编码

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如果您确定这五个数字之前没有任何

我有一个数据框,其中包含一列不同格式的邮政编码: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如果您确定这五个数字之前没有任何内容,您可以使用
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"

谢谢,这很有效。有没有办法确保前五位数字之前没有任何内容?是的,有:)现在看看我的帖子!:)