【问题标题】:How to remove constant parts of a string in R如何在R中删除字符串的常量部分
【发布时间】:2019-04-19 10:24:51
【问题描述】:

我想自动删除字符串的常量(共享)部分并保留可变部分。 例如我有一列包含以下内容:

D20181116_Basel-Take1_digital
D20181116_Basel-Take2_digital
D20181116_Basel-Take3_digital
D20181116_Basel-Take4_digital
D20181116_Basel-Take5_digital
D20181116_Basel-Take5a_digital

我怎样才能自动获得任何类似的列(这里删除:“D20181116_Basel-Take”和“_digital”)。但是代码应该自己找到常量部分并删除它们。

1
2
3
4
5
5a

我希望这很清楚。非常感谢。

【问题讨论】:

    标签: r string parsing


    【解决方案1】:

    您可以使用正则表达式:它将删除“Take”之前和下划线字符之后的所有内容:

    vec<- c("D20181116_Basel-Take1_digital", 
    "D20181116_Basel-Take2_digital",
    "D20181116_Basel-Take3_digital",
    "D20181116_Basel-Take4_digital",
    "D20181116_Basel-Take5_digital",
    "D20181116_Basel-Take5a_digital")
    
    sub(".*?Take(.*?)_.*", "\\1", vec)
    [1] "1"  "2"  "3"  "4"  "5"  "5a"
    

    【讨论】:

    • 谢谢您的回答,我想自动执行,意思是,代码应根据列确定“^D20181116_Basel-Take”和“_digital$”本身。跨度>
    • 您能否为类似的列提供一个可能的名称?
    • 我的意思是一列格式:x1y,x2y,x3y,...,我想去掉字符串的“x”和“y”,“x”和“y”会被自动检测到。它们在列的所有单元格中都是恒定的。
    【解决方案2】:

    使用 gsub():

    假设您有一个数据框 df 并且想要更改列

    df$column <- gsub("^D20181116_Basel-Take","",df$column)
    df$column <- gsub("_digital$","",df$column)
    

    【讨论】:

    • 谢谢你的回答,我想自动完成,意思是,代码应该根据列确定“^D20181116_Basel-Take”和“_digital$”本身。跨度>
    猜你喜欢
    • 2021-12-30
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    相关资源
    最近更新 更多