R에서 열을 두 개의 열로 분할

  1. separate함수를 사용하여 R에서 열을 두 개의 열로 분할
  2. extract함수를 사용하여 R에서 열을 두 개의 열로 분할
  3. str_split_fixed함수를 사용하여 R에서 열을 두 개의 열로 분할

이 기사에서는 R에서separate를 사용하여 열을 두 개의 열로 분할하는 방법을 소개합니다.

separate함수를 사용하여 R에서 열을 두 개의 열로 분할

separatetidyr 패키지의 일부이며 정규 표현식 또는 숫자 위치를 사용하여 문자 열을 여러 열로 분할하는 데 사용할 수 있습니다. 이 코드 예제에서는 이름 / 성 쌍의 쉼표로 구분 된 문자열이 포함 된 데이터 프레임을 선언합니다. 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에서 열을 두 개의 열로 분할

컬럼을 두 개의 개별 컬럼으로 분할하는 또 다른 유용한 기능은tidyr패키지의 일부이기도 한extract입니다. 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에서 열을 두 개의 열로 분할

또는stringr패키지의str_split_fixed기능을 사용할 수 있습니다. 주어진 문자 패턴과 일치하고 문자형 벡터를 해당 열 수로 분할합니다. 그러나 사용자는 반환 할 분할 항목 수를 명시 적으로 전달할 수 있습니다. 항목 수는 세 번째 인수로 전달됩니다.

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"