从超过一定长度的数字中删除最后一位数字

标签 r gsub maxlength

我有一个包含五位和九位数字代码的邮政编码向量。我想从长度超过五的代码中删除结尾数字。

例如,以下代码:

zip<-c(11566, 46235, 50467, 856073217, 97333, 856159229)

应该成为
zip
11566
46235
50467
85607
97333
85615

我认为 gsub 是解决这个问题的好方法,但我不知道如何为它编写代码。我试过这个,但它绝对不起作用。
df$zip<- gsub("\\d(!i:5)", "", as.character(df$zip))

最佳答案

这应该工作

zip<-c(11566, 46235, 50467, 856073217, 97333, 856159229)

> s <- substr(zip,1,5)
> s
[1] "11566" "46235" "50467" "85607" "97333" "85615"

> as.numeric(s)
[1] 11566 46235 50467 85607 97333 85615
> 

关于从超过一定长度的数字中删除最后一位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38362560/

相关文章:

r - 基于列表对象的子数据框

r - R 中数字的交叉表图

awk - 如何删除前导和尾随空格?

linux - 如何用 awk 和 gsub 替换文件中的数字(分别用 NA、0101、0102 和 0202 替换 -1、0、1 和 2)?

regex - 在 R 正则表达式中逐个匹配单词

r - ggplot2:没有填充的geom_polygon

r - 根据组的特定成员过滤组的所有行

javascript - TinyMCE 文本编辑器最大字符限制

html - maxlength 属性不适用于 javafx webview