【问题标题】:R - extract number from string(special solution) [closed]R - 从字符串中提取数字(特殊解决方案)[关闭]
【发布时间】:2016-09-07 15:54:37
【问题描述】:

我有一个像这样的字符串 x 我需要从 x(string) 中提取数字并将它们放入新变量中

num1 num1 num1
但是,我无法预测每个数字的位数
例如,这个 x 将是“avd_1_2_3”或“avd_11_21_33”或喜欢

你能给我一些解决方案吗? 谢谢

【问题讨论】:

    标签: r string numbers extract


    【解决方案1】:

    我们可以从stringr 使用str_extract。为了提取多个匹配,我们使用str_extract_all,它返回一个长度为1的list(因为我们在'x'中有一个元素)。要提取list 元素,我们可以使用[[,即[[1]]

    library(stringr)
    str_extract_all(x, "\\d+[a-z]*")[[1]]
    #[1] "1xx" "2xx" "3xx"
    

    使用base R 的类似选项是regmatches/gregexpr

    regmatches(x, gregexpr("\\d+[a-z]*", x))[[1]]
    #[1] "1xx" "2xx" "3xx"
    

    我们匹配的模式是一个或多个数字 (\\d+) 后跟零个或多个小写字母 ([a-z]*)。


    最好将其保留为vector,而不是在全局环境中有多个对象。

    【讨论】:

    • 谢谢你,阿克伦。它确实有效。你能告诉我这里的 [[1]] 是什么意思吗?
    • @YamPakChing 我更新了帖子。感谢您的回复
    猜你喜欢
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2013-02-19
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多