【问题标题】:How to str_extract percentages in R?如何在 R 中提取百分比?
【发布时间】:2016-06-19 18:33:13
【问题描述】:

从这个字符串border-color:#002449;left:74.4%top;37%; 我想将第一个百分比74.4% 设为一个名为X 的变量,将第二个百分比37% 设为一个名为Y 的变量。

我尝试过使用这个正则表达式"^.*?(\\d+)%.*",但这会去掉% 符号,并且只从74.4 中提取第二个4

任何帮助将不胜感激。如果需要任何进一步的信息,请告诉我。

【问题讨论】:

    标签: regex r string extract stringr


    【解决方案1】:
    s <- "border-color:#002449;left:74.4%top;37%;"
    regmatches(s, gregexpr("\\d+(\\.\\d+){0,1}%", s))[[1]]
    # [1] "74.4%" "37%"  
    

    library(stringr)
    str_extract_all(s, "\\d+(\\.\\d+){0,1}%")[[1]]
    # [1] "74.4%" "37%"  
    

    【讨论】:

    • 两个变体:'\\d+\\.?\\d*%'(等效)和'[\\d.]+%'(在这里有效,但对句点不太具体)
    • 感谢您的回答。我目前正在做:X &lt;- str_extract(s, "\\d+(\\.\\d+){0,1}%"),这将提取第一个百分比。我确信只需要进行小改动就可以提取第二个百分比,这样我就可以创建 Y 变量,但我不确定它是什么。
    • @Dre,如果你真的想要两个单独的变量,为什么不提取两个字符串,就像我对某个变量 eX &lt;- e[1]; Y &lt;- e[2] 的回答一样?我认为str_extract 没有什么改变可以实现你想要的;它返回与模式匹配的s 的第一部分(其中不能包含有关s 中的相对位置的信息)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    相关资源
    最近更新 更多