R 에서 데이터프레임을 다루다보면,
factor 들의 level 이 우선적으로 알파벳 순서를 따라가기 때문에,
저희가 원하는 factor 들의 순서로 먹히지 않는 경우가 종종 있습니다.
일례로, "Yes" 와 "No" 로 구성된 factor 가 있다면,
No 가 reference (기준 범주) 로 설정되게 됩니다.
이러한 경우에 factor 들의 level 을 우리가 원하는 방식으로 설정을 해줘야겠죠?
바로 오늘 포스팅의 내용입니다.
data 는 iris data 를 이용할 것이며,
iris 의 Species 변수의 level 를 저희가 원하는 대로 변경을 해보겠습니다.
일단, iris data 를 불러와서, Species 의 기본 level 을 살펴보겠습니다.
data(iris)
levels(iris$Species)
여기서 결과값은 [1] "setosa" , "versicolor" , "virginica" 로 나오게 됩니다.
iris$Speciesf <- factor(iris$Species, levels=c("versicolor","virginica","setosa")) levels(iris$Speciesf)
이 순서를 내가 원하는대로 바꾸고 싶다.
위의 예제처럼 "versicolor", "virginica", "setosa" 의 순서로 바꿀 수도 있고,
아니면 원하는 순서로 지정을 해주면 됩니다.
원리는 기존의 iris$Species 변수를 새롭게 factor 로 지정하면서, level 을 재설정하는 방식입니다.
iris$Speciesr <- relevel(iris$Species, ref="virginica")
levels(iris$Speciesr)
만일 나는 전체의 level 을 변경하고 싶지는 않고, reference 가 되는 level 만을 재설정하고 싶다.
이럴때 사용하게 되는 명령어가, relevel 명령어가 되겠습니다.
위의 코드를 살펴보시면,
relevel (level을 변경하길 원하는 변수, ref= "reference 로 설정하고자 하는 level ") 로 구성됩니다.
위의 예제는 "virginica" 를 reference value 로 설정하는 예입니다.
알고 계시면 유용하게 사용할 수 있으니 꼭 기억해주세요^^
도움이 되셨다면, '공감' 버튼 부탁드립니다^^.
'R_statistics > Rs_preparation' 카테고리의 다른 글
[R프로그래밍] 데이터전처리 stringr:: 문자, 텍스트, str_split, 변수 이름 나누기, (1) | 2019.03.22 |
---|---|
[R프로그래밍] 4분위 그룹 만들기, quartile grouping (0) | 2019.03.18 |
[R프로그래밍] Text 처리, 텍스트 마이닝 (0) | 2019.02.20 |
[R프로그래밍] 변수이름을 이용하여 여러열의 변수 종류 class 변경하기 (0) | 2019.02.18 |
[R프로그래밍] 조건에 맞는 행 개수 세기 (0) | 2019.02.15 |