gpt4 book ai didi

r - 如何扩展给定的数字范围以包括以破折号分隔的所有数字

转载 作者:行者123 更新时间:2023-12-01 13:14:48 25 4
gpt4 key购买 nike

我正在尝试扩展当前由破折号分隔的一系列数字以包括所有数字。

好消息是我找到了有助于以下配置的代码(不是我的):

“宴会厅 1-3”产生“宴会厅 1、宴会厅 2、宴会厅 3”,这正是我想要的。问题是,这是以破折号前后没有空格为条件的。目前,“Ballroom 1 - 3”返回“Ballroom 1 -3,Ballroom 1 - 3,Ballroom 1 - 3”;这不是所需的输出。

请注意,出于多种原因,必须保留破折号前后的空格。 “Ballroom 1 - 3”的输入必须保持不变。

## Dealing with Dash Seperated Sequences of Numbers

expand.dash <- function(dashed) {
limits <- as.numeric(unlist(strsplit(dashed, '-')))
seq(limits[1], limits[2])
}


expand.ballrooms <- function(txt) {
str <- gsub('\\d+-\\d+', '%d', txt)
dashed_str <- gsub('[a-zA-Z ]+', '', txt)
sprintf(str, expand.dash(dashed_str))
}

expand.ballrooms("Ballroom 1-3")
# this works but the line below fails to output the desired result

expand.ballrooms("Ballroom 1 - 3")
# Result should be identical to the the output returned by the previous line.

虽然没有弹出错误消息,但破折号前后的空格会导致输出重复。

最佳答案

expand.ballrooms改变这个
gsub('\\d+-\\d+', '%d', txt)
对此:
gsub('\\d+\\s*-\\s*\\d+', '%d', txt)

关于r - 如何扩展给定的数字范围以包括以破折号分隔的所有数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56213949/

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