English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

R 인자

요인은 다른 데이터 유형의 카테고리를 저장하는 데 사용됩니다. 예를 들어, 성별은 남자와 여자 두 가지 카테고리를 가지고 있으며, 연령은 미성년자와 성인으로 나눌 수 있습니다.

R 언어는 factor() 함수를 사용하여 요인을 생성합니다. 벡터를 입력 매개변수로 사용합니다.

factor() 함수 문법 형식:

factor(x = character(), levels, labels = levels,
       exclude = NA, ordered = is.ordered(x), nmax = NA)

파라미터 설명:

  • x: 벡터。

  • levels: 각 수준 값을 지정, 지정하지 않으면 x의 다른 값으로求得됩니다。

  • labels: 수준의 레이블, 지정하지 않으면 각 수준 값에 대한 문자열을 사용합니다。

  • exclude: 제외할 문자。

  • ordered: 수준이 순서가 있는지 지정하는 논리 값。

  • nmax: 수준의 상한 수량。

다음 예제에서 문자형 벡터를 요인으로 변환합니다:

x <- c("남자", "여자", "남자", "남자", "여자")
sex <- factor(x)
print(sex)
print(is.factor(sex))

위의 코드를 실행한 결과는 다음과 같습니다:

[1] 남자 여자 남자 남자 여자
Levels: 남 여
[1] TRUE

다음 예제에서는 요인 수준을 c('남자','여자')로 설정합니다:

x <- c("남자", "여자", "남자", "남자", "여자", levels=c('남자','여자'))
sex <- factor(x)
print(sex)
print(is.factor(sex))

위의 코드를 실행한 결과는 다음과 같습니다:

levels1 levels2 
남자        여자        남자        남자        여자        남자        여자 
Levels: 남 여
[1] TRUE

인자 수준 레이블

이제 labels 매개변수를 사용하여 각 인자 수준에 레이블을 추가합니다. labels 매개변수의 문자 순서는 levels 매개변수의 문자 순서와 일치해야 합니다. 예를 들어:

sex=factor(c('f','m','f','f','m'),levels=c('f','m'),labels=c('female','male'),ordered=TRUE)
print(sex)

위의 코드를 실행한 결과는 다음과 같습니다:

[1] female male   female female male  
Levels: female < male

인자 수준 생성

우리는 gl() 함수를 사용하여 인자 수준을 생성할 수 있습니다. 문법 형식은 다음과 같습니다:

gl(n, k, length = n*k, labels = seq_len(n), ordered = FALSE)

파라미터 설명:

  • n: level의 개수 설정

  • k: 각 level이 반복되는 횟수 설정

  • length:  길이 설정

  • labels: level의 값을 설정

  • ordered: level이 순서대로 정렬되어 있는지 여부를 설정하는 부울 값.

v <- gl(3, 4, labels = c("Google", "w3codebox","Taobao"))
print(v)

위의 코드를 실행한 결과는 다음과 같습니다:

 [1] Google Google Google Google w3codebox w3codebox w3codebox w3codebox Taobao Taobao
[11] Taobao Taobao
레벨: Google w3codebox Taobao