Как использовать str_split в R (с примерами)


Функцию str_split() из пакета stringr в R можно использовать для разделения строки на несколько частей. Эта функция использует следующий синтаксис:

str_split(строка, шаблон)

куда:

  • строка: вектор символов
  • Pattern : Шаблон для разделения

Точно так же функцию str_split_fixed() из пакета stringr можно использовать для разделения строки на фиксированное количество частей. Эта функция использует следующий синтаксис:

str_split_fixed (строка, шаблон, число)

куда:

  • строка: вектор символов
  • Pattern : Шаблон для разделения
  • n: количество штук для возврата

В этом руководстве представлены примеры использования каждой из этих функций в следующем фрейме данных:

#create data frame
df <- data.frame(team=c('andy & bob', 'carl & doug', 'eric & frank'),
 points=c(14, 17, 19))

#view data frame
df

 team points
1 andy & bob 14
2 carl & doug 17
3 eric & frank 19

Пример 1: Разделить строку с помощью str_split()

В следующем коде показано, как разделить строку в столбце «команда» с помощью функции str_split() :

library (stringr)

#split the string in the *team* column on " & "
str_split(df$team, " & ")

[[1]]
[1] "andy" "bob" 

[[2]]
[1] "carl" "doug"

[[3]]
[1] "eric" "frank"

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

Пример 2: Разделить строку с помощью str_split_fixed()

В следующем коде показано, как разделить строку в столбце «команда» на две фиксированные части с помощью функции str_split_fixed() :

library (stringr)

#split the string in the *team* column on " & "
str_split_fixed(df$team, " &", 2)

 [,1] [,2] 
[1,] "andy" "bob" 
[2,] "carl" "doug" 
[3,] "eric" "frank"

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

Когда-то полезным применением функции str_split_fixed() было добавление результирующей матрицы в конец фрейма данных. Например:

library (stringr)

#split the string in the *team* column and append resulting matrix to data frame
df[ , 3:4] <- str_split_fixed(df$team, " &", 2)

#view data frame
df
 team points V3 V4
1 andy & bob 14 andy bob
2 carl & doug 17 carl doug
3 eric & frank 19 eric frank

Столбец под названием «V3» показывает имя первого игрока в команде, а столбец под названием «V4» показывает имя второго игрока в команде.

Дополнительные ресурсы

Как использовать str_replace в R
Как выполнить частичное сопоставление строк в R
Как преобразовать строки в даты в R
Как преобразовать символ в число в R