如何对 R 中的百分比进行 strsplit
How to do a strsplit on percentages in R
从这个字符串 border-color:#002449;left:74.4%top;37%;
我想将第一个百分比 74.4%
设为一个名为 X
的变量,将第二个百分比 37%
设为一个名为 [=15= 的变量].
我可以用 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%;"
从这个字符串 border-color:#002449;left:74.4%top;37%;
我想将第一个百分比 74.4%
设为一个名为 X
的变量,将第二个百分比 37%
设为一个名为 [=15= 的变量].
我可以用 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%;"