从此字符串 border-color:#002449;left:74.4%top;37%;
我想将第一个百分比 74.4%
设为一个名为 X
和第二个百分比 37%
是一个名为 Y
的变量。
我可以使用 str_extract 和正则表达式来完成此操作,但我宁愿通过执行 strsplit 创建变量 X
和 Y
。
我目前在做什么:
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/