regex - 如何在 R 中对百分比进行 strsplit

标签 regex r string substring strsplit

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

我可以使用 str_extract 和正则表达式来完成此操作,但我宁愿通过执行 strsplit 创建变量 XY

我目前在做什么:

coord <- str_extract_all(s, "\\d+(\\.\\d+){0,1}%")[[1]]

X <- coord[1] ; Y <- coord[2]

这工作正常,但我的 data.frame 目前有 54 行,而不仅仅是 1 行。我相信进行 strsplit 会更好。

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

最佳答案

我们可以使用rbind coord

library(stringr)
coord <- str_extract_all(s, "\\d+(\\.\\d+){0,1}%")
d1 <- as.data.frame(do.call(rbind, coord), stringsAsFactors=FALSE)

另一个选项 str_extract将会是

coord <- str_extract_all(s, "\\d+(?:%)")
d2 <- as.data.frame(do.call(rbind, coord), stringsAsFactors=FALSE)

strsplit ,我们可以尝试

coord <- lapply(strsplit(s, '[0-9.]+%(*SKIP)(*F)|.', 
                     perl=TRUE), setdiff, "")
d3 <- as.data.frame(do.call(rbind, coord), stringsAsFactors=FALSE)

数据

s <- "border-color:#002449;left:74.4%top;37%;"

关于regex - 如何在 R 中对百分比进行 strsplit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35823557/

相关文章:

javascript - 将命令的标准输出解析为可用的 javascript 对象的最智能方法是什么

javascript - 在javascript中提取正则表达式组不起作用

R:在 map 上绘制圆形直方图/玫瑰图

r - 如何用函数包装公式的 RHS 项

c++ - 从十进制转换为 Base R c++

javascript - 正则表达式中的 'g' 标志是什么意思?

r - 使用 dplyr mutate 查找组中第一次出现的值

java - IntelliJ 中最常用的字符串

string - 在 Rust 中,将 &str 拆分为每个包含一个字符的 &strs 迭代器的惯用方法是什么?

处理字符串的 Java 正则表达式包含下一行