【问题标题】:How to do a strsplit on percentages in R如何在R中对百分比进行strsplit
【发布时间】:2016-06-19 19:29:09
【问题描述】:

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

我可以使用 str_extract 和 regex 完成此操作,但我宁愿通过 strsplit 创建变量 XY

我目前在做什么:

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

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

这很好用,但我的 data.frame 目前有 54 行,而不仅仅是 1 行。我相信做 strsplit 会更好。

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

【问题讨论】:

    标签: regex r string substring strsplit


    【解决方案1】:

    我们可以使用rbindcoord

    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%;"
    

    【讨论】:

      猜你喜欢
      • 2016-06-19
      • 2018-09-09
      • 1970-01-01
      相关资源
      最近更新 更多