6.7 요인의 서브 세팅
자료 : https://www.stat.auckland.ac.nz/~paul/ItDT/HTML/node65.html#SECTION001352000000000000000
요인의 서브세팅은 벡터의 서브세팅가 유사합니다. 그러나 요인을 서브세팅할 때 요인의 수준들은 바뀌지 않습니다.
예를 들어, 예를 들어candy_patterns
변수를 생각해 보겠습니다.
<- factor(c("pattern", "pattern", "pattern", "plain",
candy_patterns "plain", "plain", "pattern", "pattern", "pattern",
"plain", "plain", "plain"))
# 수준을 확인합니다.
levels(candy_patterns) # 수준은 "pattern"과 "plain" 두 개입니다.
## [1] "pattern" "plain"
# 첫 3개의 값만 서브세팅해 보겠습니다. : 벡터의 서브세팅과 유사합니다.
<- candy_patterns[1:3] # 첫 3개의 요소를 선택합니다.
sub_candy levels(sub_candy) # sub_candy도 2개의 수준을 가지고 있습니다.
## [1] "pattern" "plain"
is.factor(sub_candy) # sub_candy도 요인 클래스입니다.
## [1] TRUE
# 서브세팅할 때 사용하지 않는 수준을 제거합니다. (drop = TRUE 옵션 사용)
<- candy_patterns[1:3, drop = TRUE] # 서브세팅 이후에 사용되지 않는 수준은 제거해 줍니다.
sub_candy levels(sub_candy) # sub_candy의 수준이 "pattern" 한 개입니다.
## [1] "pattern"
# 서브세팅한 요인에 "plain" 값을 삽입해 보겠습니다.
4] <- "plain" # sub_candy의 네 번째 요소로 plain을 삽입합니다. sub_candy[
## Warning in `[<-.factor`(`*tmp*`, 4, value = "plain"): invalid factor level, NA
## generated
# 앞에서 설명했듯이 경고메시지를 반환하고, NA값이 입력됩니다.
4] # NA가 입력되어 있습니다. sub_candy[
## [1] <NA>
## Levels: pattern