我正在导入一个文件,其列名采用以下格式:
x <- "text.text.text.text.name"
在大多数情况下,以下行有助于在最后一段时间之前删除所有内容,只留下我想要的变量名称(name
):
gsub(".*\\.","", x)
但是,某些变量具有以下格式:
y <- "text.text.text.text.name.R1"
我希望在最后一段时间后跟一个大写字母“R”时保持name.R1
。如何修改gsub
参数以允许此更改?
答案 0 :(得分:1)
您可以使用负面预测来约束最后一段时间:
gsub(".*\\.(?!R)", "", x, perl = T)
# [1] "name"
gsub(".*\\.(?!R)", "", y, perl = T)
# [1] "name.R1"
答案 1 :(得分:0)
gsub('.*\\.(\\w+.\\w+$)','\\1',y)
#[1] "name.R1"
答案 2 :(得分:0)
@ kasterma的解决方案最适合我:
gsub("(.*\\.)([^R])","\\2", x)