2016-06-27 6 views
0

Я импортировать файл с именами столбцов, которые имеют следующий формат:замена текста с условным рисунком

x <- "text.text.text.text.name" 

В большинстве случаев, следующая строка хороша для удаления все до конечного периода, оставив только имя переменной Я хочу (name):

gsub(".*\\.","", x) 

Однако некоторые переменные имеют следующий формат:

y <- "text.text.text.text.name.R1" 

Я хотел бы сохранить name.R1, когда за последним периодом следует столица «R». Как мне изменить аргумент gsub, чтобы разрешить это изменение?

ответ

0

@ решения kasterma работал лучше для меня:

gsub("(.*\\.)([^R])","\\2", x) 
1

Вы можете использовать отрицательный взгляд вперед, чтобы ограничить конечный период:

gsub(".*\\.(?!R)", "", x, perl = T) 
# [1] "name" 

gsub(".*\\.(?!R)", "", y, perl = T) 
# [1] "name.R1" 
+4

Просто предложить другое решение: без go с perl regexps У меня есть 'gsub (" (. * \\.) ([^ R]) "," \\ 2 ", x)'. – kasterma

+0

@kasterma этот вариант работает лучше всего для меня –

0
gsub('.*\\.(\\w+.\\w+$)','\\1',y) 
#[1] "name.R1" 
Смежные вопросы