Работа со строками

В статье описаны базовые функции языка R для работы со строковыми данными.

1.Получение длины строки.

nchar("Тестовая строка")

Функцию length использовать неправильно — она возвращает длину вектора.

2. Слияние строк.

paste("Строка 1","Строка 2", sep="+")

По умолчанию разделитель (sep) пробел.

Если нужно слить строки без разделителя, удобнее использовать функцию

paste0("Строка 1","Строка 2")

Обе функции могут работать с векторами.

В этом случае может быть удобно использовать разделитель верхнего уровня — collapse

stooges <- c("Moe","Larry","Curly")

paste(stooges, "loves", "stats", collapse = ", and")

#> "Moe loves stats, and Larry loves stats, and Curly loves stats"

3. Извлечение подстроки.

substr("Строка", position_start, position_end)

substr("some text", 2, 6)

4. Разбиение строки по разделителю.

strsplit("d:/Folder/subdirectories", "/")

Важно! Функция возвращает список, где каждый элемент — вектор подстрок. Это необходимо на случай, если первый аргумент функции вектор.

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

strsplit("Some Text", " ")[[1]]

5. Замена подстроки.

Функция делает замену первого вхождения искомой фразы

sub(old, new, string)

Для замены всех вхождений фразы следует использовать:

gsub(old, new, string)

Чтобы полностью удалить подстроку, можно использовать пустую новую подстроку:

sub("text", "", "Source text")

Аргумент old может быть регулярным выражением. Это предполагается по умолчанию.

Если нужно, чтобы поиск происходил строго по аргументу old, без использования регулярных выражений, то нужно добавить параметр fixed = TRUE.

6. Генерация попарных комбинаций строк (декартово произведение)

outer(string1, string2, paste, sep = "")

7. Преобразование строки в дату.

as.Date("2021-06-28")

Формат текстовой строки должен соответствовать формату даты по умолчанию «yyyy-mm-dd» иначе будет ошибка.

Чтобы правильно сконвертировать дату в другом формате, нужно использовать параметр format

as.Date("12/31/2020", format = "%m/%d/%Y")

(Visited 42 times, 1 visits today)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *