How to extract numbers from text? [duplicate]

六月ゝ 毕业季﹏ 提交于 2019-12-19 04:55:40

问题


i have the flowing text string:

string <- "['CBOE SHORT-TERM VIX FUTURE DEC 2016', 81.64],\n\n    ['CBOE SHORT-TERM VIX FUTURE JAN 2017', 18.36]"

is there a simple way of extracting numerical elements from text without having to use:

string_table <- strsplit(string, " ")

and then select n-th element and continue to strsplit until i have what i need.

the result should be:

result <- c(2016, 81, 64, 2017, 18, 36)

thank you.


回答1:


We can use str_extract_all by specifying the pattern as one or more number ([0-9]+). The output will be a list of length 1, extract the vector with [[ and convert to numeric.

library(stringr)
as.numeric(str_extract_all(string, "[0-9]+")[[1]])
#[1] 2016   81   64 2017   18   36

If we are using strsplit, split by the non-numeric characters

as.numeric(strsplit(string, "\\D+")[[1]][-1])
#[1] 2016   81   64 2017   18   36


来源:https://stackoverflow.com/questions/40744463/how-to-extract-numbers-from-text

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!