如何从文本中提取数字?
How to extract numbers from text?
我有流畅的文本字符串:
string <- "['CBOE SHORT-TERM VIX FUTURE DEC 2016', 81.64],\n\n ['CBOE SHORT-TERM VIX FUTURE JAN 2017', 18.36]"
是否有一种简单的方法可以从文本中提取数字元素而无需使用:
string_table <- strsplit(string, " ")
然后 select 第 n 个元素并继续 strsplit
直到我得到我需要的东西。
结果应该是:
result <- c(2016, 81, 64, 2017, 18, 36)
谢谢。
我们可以通过将模式指定为一个或多个数字 ([0-9]+
) 来使用 str_extract_all
。输出将是长度为 1 的 list
,用 [[
提取向量并转换为 numeric
.
library(stringr)
as.numeric(str_extract_all(string, "[0-9]+")[[1]])
#[1] 2016 81 64 2017 18 36
如果我们使用 strsplit
,按非数字字符拆分
as.numeric(strsplit(string, "\D+")[[1]][-1])
#[1] 2016 81 64 2017 18 36
我有流畅的文本字符串:
string <- "['CBOE SHORT-TERM VIX FUTURE DEC 2016', 81.64],\n\n ['CBOE SHORT-TERM VIX FUTURE JAN 2017', 18.36]"
是否有一种简单的方法可以从文本中提取数字元素而无需使用:
string_table <- strsplit(string, " ")
然后 select 第 n 个元素并继续 strsplit
直到我得到我需要的东西。
结果应该是:
result <- c(2016, 81, 64, 2017, 18, 36)
谢谢。
我们可以通过将模式指定为一个或多个数字 ([0-9]+
) 来使用 str_extract_all
。输出将是长度为 1 的 list
,用 [[
提取向量并转换为 numeric
.
library(stringr)
as.numeric(str_extract_all(string, "[0-9]+")[[1]])
#[1] 2016 81 64 2017 18 36
如果我们使用 strsplit
,按非数字字符拆分
as.numeric(strsplit(string, "\D+")[[1]][-1])
#[1] 2016 81 64 2017 18 36