Извлечение подстроки перед «..» с помощью R

#gsub

#gsub

Вопрос:

Я хотел бы извлечь «PAN3.AS1» из «PAN3.AS1..100288730». Как я мог это сделать? Я знаю, что функция gsub() может это сделать, но я не знал, что написать.

Комментарии:

1. Используйте strsplit и экранируйте точки с помощью двойной обратной косой черты, например: strsplit("PAN3.AS1..100288730.", "\.\.")

Ответ №1:

Я бы использовал подход замены:

 x <- "PAN3.AS1..100288730"
sub("\.\..*$", "", x)

[1] "PAN3.AS1"
  

Причина, по которой я решил сделать это, удалив многоточие, за которым следует все содержимое справа, заключается в том, что если на входе нет многоточия, описанный выше подход просто вернет входные данные, а это то поведение, которое мы хотим.

Ответ №2:

я не знаком, gsub() но вы можете использовать простое регулярное выражение — "PAN3.AS1..100288nnn730.".replace(/..[sS] /, '')