Удаление части строк в столбце - PullRequest
0 голосов
/ 16 января 2019

У меня есть столбец внутри фрейма данных с последовательностью идентификаторов, буквой и 8 цифрами, т. Е. B15006788.

Есть ли способ удалить все экземпляры B15 .... чтобы сделать их пустыми ячейками (в каждой категории тысячи вариаций чисел), но сохранить B16 .... и т. Д.

Я знаю, есть ли одна вещь, которую я хотел бы удалить, например, B15, я мог бы сделать;

sub («B15», «», df $ col)

Но я не уверен, как удалить установленное количество символов / цифр (или даже все последующие символы после B15).

Заранее спасибо:)

1 Ответ

0 голосов
/ 16 января 2019

Добро пожаловать на ТАК! Это случай регулярных выражений. Вы можете использовать базу R, как я покажу здесь, или посмотреть на пакет stringR для удобных инструментов, которые легче понять. Вы также можете искать правила регулярных выражений, чтобы определить, что вы хотите искать. Для того, что вы просите, вы можете использовать следующий пример кода:

testStrings <- c("KEEPB15", "KEEPB15A", "KEEPB15ABCDE")

gsub("B15.{2}", "", testStrings)

gsub - это базовая функция R для замены шаблона чем-то другим в одном или ряде входов. Чтобы проверить наше регулярное выражение, я создал вектор testStrings для разных примеров.

Если разбить код регулярного выражения, "B15" - это шаблон, который вы специально ищете. "." означает любой символ, а "{2}" говорит, какой диапазон любого символа мы хотим получить после "B15". Вы можете изменить его, как вам нужно. Если вы хотите удалить все после "B15". замените рисунок на «B15. ». «» означает все до конца.

edit: Если вы хотите указать, что «B15» должен находиться в начале строки, вы можете добавить «^» в начало шаблона следующим образом: «^ B15. {2}»

https://www.rstudio.com/wp-content/uploads/2016/09/RegExCheatsheet.pdf содержит информацию о различных регулярных выражениях, которые вы можете сделать более точными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...