【问题标题】:Replacing the specific values in columns of data frame using gsub in R在 R 中使用 gsub 替换数据框列中的特定值
【发布时间】:2015-08-17 13:04:42
【问题描述】:

我有如下data.frame

> df
ID      Value
A_001   DEL-1:7:35-8_1 
A_002   INS-4l:5_74:d
B_023   0 
C_891   2
D_787   8
E_865   DEL-3:65:1s:b

我想用 DEL 和 INS 开头的列 Value 中的所有值替换为空。我的意思是我想得到如下输出

> df
ID      Value
A_001   
A_002   
B_023   0 
C_891   2
D_787   8
E_865   

我尝试使用以下代码在 R 中使用 gsub 来实现此目的,但没有成功

gsub(pattern="(^([DEL|INS]*)",replacement="",df)

谁能指导我如何实现所需的输出。

提前致谢。

【问题讨论】:

    标签: regex r gsub


    【解决方案1】:

    只需删除字符类并在该组旁边添加.*sub 一个人就可以完成这项工作。

    df$value <- sub("^(DEL|INS).*", "", df$value)
    

    在一个字符类中,每个字符都不会被视为一个完整的字符串。所以[DEL] 将匹配给定列表中的单个字符,它可能是DEL

    【讨论】:

      【解决方案2】:

      第一个字母不是数字:

      df$value <- gsub("^\\D.*", "", df$value)
      

      或者删除值中有'-':

      df$value <- gsub(".*-.*", "", df$value)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-24
        • 1970-01-01
        • 2022-01-14
        • 1970-01-01
        • 2019-02-25
        • 1970-01-01
        • 2020-10-17
        • 2020-04-14
        相关资源
        最近更新 更多