gpt4 book ai didi

regex - 使用 toOrdinal 将数字替换为序数

转载 作者:行者123 更新时间:2023-12-04 21:49:37 28 4
gpt4 key购买 nike

我有一个地址序列,我正在尝试用序数替换数字。现在我有以下内容。

library(toOrdinal)
addlist<-c("east 1 street", "4 ave", "5 blvd", "plaza", "43 lane" )
numstringc<-gsub("\\D", "", addlist)
numstring <-as.integer(numstringc)
ordstring<-sapply(numstring[!is.na(numstring)], toOrdinal)
ordstring
[1] "1st" "4th" "5th" "43rd"

我想最终得到一个向量,上面写着

[1] "east 1st street", "4th ave", "5th blvd", "plaza", "43rd lane"

但我不知道该怎么做。

最佳答案

使用\\1 可以访问括号中匹配表达式的部分,但是 gsub 不允许替换中的函数,因此您必须使用同名包中的 gsubfn,这实际上不需要\\1 部分:

library(gsubfn)
addlist<-c("east 1 street", "4 ave", "5 blvd", "plaza", "43 lane" )
ordstring <- gsubfn("[0-9]+", function (x) toOrdinal(as.integer(x)), addlist)

或者,您可以使用 gregexpr 和 regmatches 来替换它们:

m <- gregexpr("[0-9]+", addlist)
regmatches(addlist, m) <- sapply(as.integer(regmatches(addlist,m)), toOrdinary)

关于regex - 使用 toOrdinal 将数字替换为序数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31031639/

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