Dplyr을 사용하여 여러 열을 요인으로 변환하는 방법


dplyr 패키지의 함수를 사용하여 여러 열을 요인으로 변환하려면 다음 방법을 사용할 수 있습니다.

방법 1: 특정 열을 요인으로 변환

 library (dplyr) 

df %>% mutate_at(c(' col1 ', ' col2 '), as. factor )

방법 2: 모든 문자 열을 요소로 변환

 library (dplyr)

df %>% mutate_if(is. character , as. factor )

다음 예에서는 각 방법을 실제로 사용하는 방법을 보여줍니다.  

예 1: 특정 열을 요인으로 변환

R에 다음과 같은 데이터 프레임이 있다고 가정합니다.

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 starter=c('Y', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'N'),
                 points=c(12, 24, 25, 35, 30, 14, 19, 11))

#view structure of data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: chr "A" "A" "A" "B" ...
 $position: chr "G" "G" "F" "F" ...
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

team , positionstarter 열은 문자이고 points 열은 숫자임을 알 수 있습니다.

직책 열만 요인으로 변환하려면 다음 구문을 사용할 수 있습니다.

 library (dplyr) 

#convert team and position columns to factor
df <- df %>% mutate_at(c(' team ', ' position '), as. factor )

#view structure of updated data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: Factor w/ 4 levels "A","B","C","D": 1 1 1 2 2 3 3 4
 $ position: Factor w/ 2 levels "F","G": 2 2 1 1 2 2 1 1
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

이제 위치 열이 모두 요소임을 알 수 있습니다.

예 2: 모든 문자 열을 인수로 변환

R에 다음과 같은 데이터 프레임이 있다고 가정합니다.

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 starter=c('Y', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'N'),
                 points=c(12, 24, 25, 35, 30, 14, 19, 11))

#view structure of data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: chr "A" "A" "A" "B" ...
 $position: chr "G" "G" "F" "F" ...
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

데이터 프레임의 열 중 3개가 문자 열임을 알 수 있습니다.

모든 문자 열을 요인으로 변환하려면 다음 구문을 사용할 수 있습니다.

 library (dplyr) 

#convert all character columns to factor
df <- df %>% mutate_if(is. character , as. factor )

#view structure of updated data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: Factor w/ 4 levels "A","B","C","D": 1 1 1 2 2 3 3 4
 $ position: Factor w/ 2 levels "F","G": 2 2 1 1 2 2 1 1
 $ starter: Factor w/ 2 levels "N","Y": 2 2 2 1 1 2 1 1
 $ points: num 12 24 25 35 30 14 19 11

이제 모든 문자 열이 요인임을 알 수 있습니다.

참고 : mutate_atmutate_if 함수에 대한 전체 설명은 dplyr 설명서 페이지를 참조하세요.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

dplyr을 사용하여 여러 열을 숫자로 변환하는 방법
R에서 요소를 숫자로 변환하는 방법
R에서 날짜를 숫자로 변환하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다