将包含带小数的正数/负数的字符串转换为R中的数字[重复]

问题描述 投票:0回答:1

我有以下向量:

x = c("=-1000.51$^{*}$", "=.0038374", "=-2.91823e-09", "=7.290392e-09","=2.254938e-08$^{**}$") 

将此向量转换为数字向量的最快方法是什么,例如:

x = c(-1000.51, .0038374, -2.91823e-09,7.290392e-09,2.254938e-08) 

使用R?

我试过了

x %>% str_match_all("[0-9]+") %>% unlist %>% as.numeric

但它并没有像我希望的那样工作。感谢您的帮助。

r regex stringr
1个回答
2
投票

这里有几行。最后三张摘自评论

as.numeric(trimws(trimws(x, "left", "="), "right", "\\D"))

x |> trimws("left", "=") |> trimws("right", "\\D") |> as.numeric()

as.numeric(trimws(x, "both", "[^-0-9]"))

read.table(text = sub("=", "", x), comment.char = "$")[[1]]

library(gsubfn)
strapply(x, "-?\\d.*\\d", as.numeric, simplify = TRUE)

library(readr)
parse_number(x)

as.numeric(gsub("[^-+0-9.e]", "", x))

library(stringr)
str_match_all(x, "[-+0-9.e]+") |> unlist() |> as.numeric()
© www.soinside.com 2019 - 2024. All rights reserved.