Разделить столбец на два столбца в R

  1. Используйте separate функцию, чтобы разделить столбец на два столбца в R
  2. Используйте функцию extract, чтобы разделить столбец на два столбца в R
  3. Используйте функцию str_split_fixed, чтобы разделить столбец на два столбца в R

В этой статье будет рассказано, как разбить столбец на два столбца с помощью separate в R.

Используйте separate функцию, чтобы разделить столбец на два столбца в R

Отдельный является частью пакета tidyr, и его можно использовать для разделения символьного столбца на несколько столбцов с регулярными выражениями или числовыми позициями. В этом примере кода мы объявляем фрейм данных, который содержит строки пар имя / фамилия, разделенные запятыми. Функция separate принимает фрейм данных в качестве первого аргумента и имя столбца в качестве второго аргумента. Третий аргумент обозначает имена переменных, которые будут именами столбцов вновь созданного вектора символов. Обратите внимание на то, что мы используем конвейер %>% для передачи объекта df функции separate. Тот же вызов функции может быть вызван во фрейме данных, где имя и фамилия разделены точками.

library(dplyr)
library(tidyr)
library(stringr)

df <- data.frame(x = c('John, Mae', 'Maude, Lebowski', 'Mia, Amy', 'Andy, James'))
df1 <- data.frame(x = c('John. Mae', 'Maude. Lebowski', 'Mia. Amy', 'Andy. James'))

df %>% separate(x, c('Name', 'Surname'))

df1 %>% separate(x, c('Name', 'Surname'))

Выход:

> df %>% separate(x, c('Name', 'Surname'))
   Name   Surname
1  John       Mae
2 Maude  Lebowski
3   Mia       Amy
4  Andy     James

> df1 %>% separate(x, c('Name', 'Surname'))
   Name  Surname
1  John      Mae
2 Maude Lebowski
3   Mia      Amy
4  Andy    James

Используйте функцию extract, чтобы разделить столбец на два столбца в R

Еще одна полезная функция для разделения столбца на два отдельных - extract, который также является частью пакета tidyr. Функция extract работает с столбцами с использованием групп регулярных выражений. Обратите внимание, что каждая группа регулярных выражений должна быть сопоставлена ​​с элементами в предыдущем параметре. Если группы и элементы не совпадают, на выходе будут значения NA.

library(dplyr)
library(tidyr)
library(stringr)

df <- data.frame(x = c('John, Mae', 'Maude, Lebowski', 'Mia, Amy', 'Andy, James'))

df %>% extract(x, c("Name", "Surname"), "([^,]+), ([^)]+)")

Выход:

> df %>% extract(x, c("Name", "Surname"), "([^,]+), ([^)]+)")

   Name  Surname
1  John      Mae
2 Maude Lebowski
3   Mia      Amy
4  Andy    James

Используйте функцию str_split_fixed, чтобы разделить столбец на два столбца в R

Как вариант, мы можем использовать функцию str_split_fixed из пакета stringr. Он соответствует заданному шаблону символов и разбивает вектор символов на соответствующее количество столбцов. Хотя пользователь может явно передать количество возвращаемых разделенных элементов. Количество элементов передается в качестве третьего аргумента.

library(dplyr)
library(tidyr)
library(stringr)

df <- data.frame(x = c('John, Mae', 'Maude, Lebowski', 'Mia, Amy', 'Andy, James'))

str_split_fixed(df$x, ", ", 2)

Выход:

> str_split_fixed(df$x, ", ", 2)
     [,1]    [,2]      
[1,] "John"  "Mae"     
[2,] "Maude" "Lebowski"
[3,] "Mia"   "Amy"     
[4,] "Andy"  "James"