【问题标题】:Extract letters (some numbers) and under scores from a character string从字符串中提取字母(一些数字)和分数
【发布时间】:2016-04-20 10:11:30
【问题描述】:

我有一堆包含数字和字母的各种长度的章程字符串。所有章程字符串都以 _ 结尾,后跟一个数字(例如 _30、_100、_500 或 _1000)。

下面的String 对象包含一些示例。

Strings <- c("DET37_30", "DET37_500",  "Ele_100",  "Ele_1000", "NDVI_MeanMax_100", "RadWint_30", "RadWint_500", "Slope_100")

对于每个列名,我想选择最后一个_number之前的所有数字、字母和_

例如,DET37_30DET_500 会产生 DET37Ele_100Ele_1000 会产生 Ele。

换句话说,我想要结尾 _30_100_500_1000 之前的所有值。

【问题讨论】:

  • @Richard Scriven 完成了,你的答案在哪里很好:)

标签: regex r string character gsub


【解决方案1】:
sub("_\\d+$", "", Strings)
#[1] "DET37"        "DET37"        "Ele"          "Ele"          "NDVI_MeanMax" "RadWint"     
#[7] "RadWint"      "Slope"

此正则表达式匹配一个下划线后跟一个或多个数字,它使用$ 锚点只允许在行尾匹配。

【讨论】:

    【解决方案2】:

    你可以试试:

    gsub("(.*)_[0-9]*","\\1",Strings)
    

    它将整个字符串替换为下划线之前的任何内容。

    【讨论】:

      猜你喜欢
      • 2017-07-30
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 2021-12-10
      • 2019-09-06
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      相关资源
      最近更新 更多