从字符串中提取字母(一些数字)和下划线
Extract letters (some numbers) and under scores from a character string
我有一堆不同长度的包含数字和字母的字符。所有章程字符串都以 _
结尾,后跟数字(例如 _30、_100、_500 或 _1000)。
下面的 String
对象包含一些示例。
Strings <- c("DET37_30", "DET37_500", "Ele_100", "Ele_1000", "NDVI_MeanMax_100", "RadWint_30", "RadWint_500", "Slope_100")
对于每个列名,我想 select 所有数字、字母和 _
在最终 _number
之前
例如 DET37_30
和 DET_500
将导致 DET37
,而 Ele_100
和 Ele_1000
将导致 Ele.
换句话说,我想要结尾 _30
、_100
、_500
或 _1000
.
之前的所有值
sub("_\d+$", "", Strings)
#[1] "DET37" "DET37" "Ele" "Ele" "NDVI_MeanMax" "RadWint"
#[7] "RadWint" "Slope"
此正则表达式匹配一个下划线后跟一个或多个数字,它使用 $
锚点只允许匹配行尾。
你可以试试:
gsub("(.*)_[0-9]*","\1",Strings)
它用下划线之前的任何内容替换整个字符串。
我有一堆不同长度的包含数字和字母的字符。所有章程字符串都以 _
结尾,后跟数字(例如 _30、_100、_500 或 _1000)。
下面的 String
对象包含一些示例。
Strings <- c("DET37_30", "DET37_500", "Ele_100", "Ele_1000", "NDVI_MeanMax_100", "RadWint_30", "RadWint_500", "Slope_100")
对于每个列名,我想 select 所有数字、字母和 _
在最终 _number
例如 DET37_30
和 DET_500
将导致 DET37
,而 Ele_100
和 Ele_1000
将导致 Ele.
换句话说,我想要结尾 _30
、_100
、_500
或 _1000
.
sub("_\d+$", "", Strings)
#[1] "DET37" "DET37" "Ele" "Ele" "NDVI_MeanMax" "RadWint"
#[7] "RadWint" "Slope"
此正则表达式匹配一个下划线后跟一个或多个数字,它使用 $
锚点只允许匹配行尾。
你可以试试:
gsub("(.*)_[0-9]*","\1",Strings)
它用下划线之前的任何内容替换整个字符串。