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 , position 및 starter 열은 문자이고 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_at 및 mutate_if 함수에 대한 전체 설명은 dplyr 설명서 페이지를 참조하세요.
추가 리소스
다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
dplyr을 사용하여 여러 열을 숫자로 변환하는 방법
R에서 요소를 숫자로 변환하는 방법
R에서 날짜를 숫자로 변환하는 방법