我想从固定位置on day
提取字符串中存在的天数到列表中,而不考虑单词every
之后的数字。有想法吗?
strg1 <- 'At 08:00 AM, on day 4 of the month, every 12 months'
strg2 <- 'At 08:00 AM, on day 4,20,2 of the month, every 12 months'
期望结果在列表中,例如:对于strg1
4
为strg2
4 20 2
答案 0 :(得分:2)
您可以使用此代码段
function accelerate(){
var initial, accelerated;
var initialAD = d3.line()
.x(function(d,i){return xScale(ADX[i])})
.y(function(d,i){return yScale(initialADMoveY[i])})
//create the initial path
var initial = initialAD(ADX);
var acceleratedAD = d3.line()
.x(function(d,i){return xScale(ADX[i])})
.y(function(d,i){return yScale(acceleratedADY[i])})
//create accelerated
var accelerated = acceleratedAD(ADX);
g.append("path").attr("class","first").attr("d",ADPath)
.attr("stroke-width",3)
.attr("stroke","green")
.transition()
.duration(2000)
.attrTween("d" ,function(){
return d3.interpolateString(ADPath,initial)
}).on("end",secondTransition)
function secondTransition(){
g.append("path").attr("class","second").attr("d",initial)
.attr("stroke-width",3)
.attr("stroke","green")
.transition()
.duration(2000)
.attrTween('d', function (d) {
return d3.interpolateString(initial, accelerated);
});
}
答案 1 :(得分:0)
使用基数R,我们可以首先在字符串的"day"
和"of"
之间找到文本,然后获取该文本中的所有数字,而不必考虑它们之间的任何分隔符。
get_numbers <- function(string) {
a1 <- trimws(sub(".*day(.*)of.*", "\\1", string))
as.numeric(strsplit(gsub("[^0-9]", " ", a1), "\\s+")[[1]])
}
get_numbers(strg1)
#[1] 4
get_numbers(strg2)
#[1] 4 20 2
get_numbers("At 08:00 AM, day 4,20 and till 2 of 36")
#[1] 4 20 2
答案 2 :(得分:0)
我们可以使用tidyverse
创建一个函数并提取数字
library(tidyverse)
library(magrittr)
getNumbers <- function(vec) {
as.numeric(str_extract_all(str_extract_all(vec,
"(?<=day )((\\d+),?){1,}")[[1]], "\\d+")[[1]])
}
getNumbers(strg2)
#[1] 4 20 2
getNumbers(strg1)
#[1] 4