본문 바로가기
Data Science/R

R프로그래밍 : 범주형 벡터 원소의 변경 (levels)

by 엔딴 2021. 3. 8.
반응형

문자형 벡터는 원소를 쉽게 변환할 수 있다. 

nat <- c('KOREA','JAPAN','CHINA','USA','CHINA','KOREA','USA','JAPAN')
nat[8] <- 'TAIWAN'
print(x=nat)

[1] "KOREA"  "JAPAN"  "CHINA"  "USA"    "CHINA"  "KOREA"  "USA"  "TAIWAN"

 

 

하지만 범주형 벡터는 레벨에 없는 원소로 변경할 때 NA로 대체된다. 

fct[8] <- 'TAIWAN'
print(x=fct)

[1] KOREA JAPAN CHINA USA   CHINA KOREA USA   <NA> 
Levels: KOREA USA CHINA JAPAN

# fct의 레벨에 'TAIWAN'이 없기 때문에 8번째 원소가 NA로 변경되었다. 

 

 

따라서 범주형 벡터의 원소를 변경하려면 미리 레벨에 추가해주어야 한다.

levels(x=fct)
levels(x=fct)[5] = 'TAIWAN'

 

레벨에 추가된 원소로 변경하기

fct[8] = 'TAIWAN'
print(x=fct)

[1] KOREA  JAPAN  CHINA  USA    CHINA  KOREA  USA    TAIWAN
Levels: KOREA USA CHINA JAPAN TAIWAN

반응형