gpt4 book ai didi

r - 如何从 R 中的字符向量中获取数字?

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

我有一个字符向量,想从中获取整数和 float 。

    a <- c("Sam is 5 years old", "Ram is 3.7 years old" , "John is 17 years 2 months old")

输出应该是:

      [1]  5  3.7 17.2

最佳答案

我们可以使用readr中的parse_number

readr::parse_number(a)
#[1] 5.0 3.7 17.0

更新

基于OP的新例子

library(stringr)
sapply(str_extract_all(a, "[0-9]+\\s+(years|months)"), function(x) {
x1 <- readr::parse_number(x)
head(if(length(x1)==2) x1 + round(x1[2]/12, 1) else x1, 1)})
#[1] 5.0 7.0 17.2

如果我们不需要为“月”除以 12,另一种选择是

as.numeric(sapply(regmatches(a, gregexpr('[0-9]+', a)), paste, collapse="."))
#[1] 5.0 3.7 17.2

关于r - 如何从 R 中的字符向量中获取数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43753486/

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