【问题标题】:How to remove brackets and keep content inside from Data Frame如何删除括号并将内容保留在数据框中
【发布时间】:2021-11-26 23:15:38
【问题描述】:

我有一个从 pdf 中提取的数据框,看起来像这样

library(tidyverse)

Name <- c("A","B","A","A","B","B","C","C","C")
Result <- c("ND","[0.5]","1.2","ND","ND","[0.8]","ND","[1.1]","22")
 
results2 <- data.frame(Name, Result)
results2

我正在尝试摆脱括号并尝试使用 gsub 和小节但失败了。它看起来像

results2$RESULT <-gsub("\\[","",results2$RESULT)

并导致“意外符号”错误消息。我想去掉括号,把结果变成一个数字列。

【问题讨论】:

    标签: r regex


    【解决方案1】:

    我们可能需要更改它以添加一个 OR (|) 和 ],以便匹配左方括号和右方括号。此外,列名是小写的。由于R 区分大小写,它不会匹配数据中不存在的“RESULT”

     gsub("\\[|\\]", "", results2$Result)
    [1] "ND"  "0.5" "1.2" "ND"  "ND"  "0.8" "ND"  "1.1" "22" 
    

    【讨论】:

      【解决方案2】:

      当您使用 library(tidyverse) 时,您可以这样做:正则表达式来自 akrun:

      library(dplyr)
      library(stringr)
      results2 %>% 
        mutate(Result = str_replace_all(Result, "\\[|\\]", ""))
      
        Name Result
      1    A     ND
      2    B    0.5
      3    A    1.2
      4    A     ND
      5    B     ND
      6    B    0.8
      7    C     ND
      8    C    1.1
      9    C     22
      

      【讨论】:

        猜你喜欢
        • 2017-07-06
        • 2020-03-17
        • 1970-01-01
        • 2021-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-16
        相关资源
        最近更新 更多