首页 > 解决方案 > 返回两个字符 '.' 之间的字符串

问题描述

我有类似于以下的列名

names(df_woe)

# [1] "A_FLAG" "woe.ABCD.binned" "woe.EFGHIJ.binned"       
 ...

我想通过删除“woe”来重命名这些列。和“.binned”部分,以便返回以下内容

names(df_woe)
# [1] "A_FLAG" "ABCD" "EFGHIJ"       
 ...

我已经尝试过substr(names(df_woe), start, stop),但我不确定如何设置变量启动/停止参数。

标签: rregexsubstrnames

解决方案


另一种可能且可读的正则表达式可以是创建组并在第一个点之后和第二个点之前返回组,即

gsub("(.*\\.)(.*)\\..+", "\\2", names(df_woe))
#[1] "A_FLAG" "ABCD"   "EFGH"

推荐阅读