提取变量名称的一部分以在函数中使用

时间:2018-07-11 16:41:04

标签: r regex function

我有一个对象res_list,其中包含我想使用函数提取的数据。

res_list $具有以下可能性:Cearly,Rearly,Clate,Rlate,Cfollow,Rfollow。

我想创建一个函数,通过利用我已经在R中创建的数据对象的“名称”,以迭代的方式从所有不同的res_list $可能性中提取数据

这些对象的名称如下:

signi_BTM_Cearly2
signi_BTM_Clate2
.
.
.
signi_BTM_Rfollow2

基本上,我只想告诉我要创建的函数只接受表名称的“ Cearly”,“ Clate”,...“ Rfollow”部分。这样我就可以检索所需的数据。

我知道这是一个非常简单的任务,我只是想不通。

谢谢大家的时间,

2 个答案:

答案 0 :(得分:1)

简单地使用gsub可能也会在这里为您提供帮助。

val3<-c("signi_BTM_Cearly2","signi_BTM_Clate2")
gsub(".*_|\\d+$","",val3)

输出如下。

[1] "Cearly2" "Clate2"

答案 1 :(得分:0)

我们可以使用sub捕获_之后的字符作为一个组,然后在末尾(\\d+)处捕获一个或多个数字($)。字符串并替换为捕获组的后向引用(\\1

sub(".*_([A-Za-z]+)\\d+$", "\\1", str1)
#[1] "Cearly"  "Clate"   "Rfollow"

数据

str1 <- c("signi_BTM_Cearly2", "signi_BTM_Clate2", "signi_BTM_Rfollow2")