gpt4 book ai didi

r - 消除R中美国电话号码前面的前导 '1'

转载 作者:行者123 更新时间:2023-12-03 08:20:23 25 4
gpt4 key购买 nike

我有一个美国电话号码向量,其中一些电话号码开头有一个前导“1”。如果数字长度为 11 位,则意味着第一个数字是我想要删除的“1”(至少在我的数据集中)。

phone <- c("1234567890", "1234567890", "5556456890", "5444567890", "19729772976")

我使用删除了所有空格、标点符号和破折号

gsub("[- .)(+]|[a-zA-Z]*:?","", phone)

如果字符串长度为 11 个字符,我不确定如何对其进行编码以删除第一个数字。或者换句话说,如果字符串具有一定长度,则删除向量中的第一个字符。

最佳答案

我们可以使用 base R 中的 sub 来匹配开头 (^) 的 1字符串,并将 10 位数字 (\\d{10}) 捕获为一组 ((...)),直到末尾 ($) 的字符串,并指定替换中捕获的组的反向引用 (\\1)。这将防止丢失 10 位数字字符串中的任何 1

sub("^1(\\d{10})$", "\\1", phone)

-输出

[1] "1234567890" "1234567890" "5556456890" "5444567890" "9729772976"

关于r - 消除R中美国电话号码前面的前导 '1',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68026126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com