R/R 프로젝트

[ 이토록 쉬운 통계&R 100일 프로젝트 ] 48일차

Chipmunks 2018. 7. 3.
728x90



공부 페이지

277 페이지 ~ 281 페이지


배운 개념

$를 활용한 변수 수정과 추가하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
> setwd("~/Documents/Workspace/R/Practice/data")
 
> demo = read.csv("gender_age.csv", fileEncoding = "euc-kr")
 
> demo$Gender = factor(demo$Gender)
 
> str(demo)
'data.frame':    6 obs. of  2 variables:
 $ Gender: Factor w/ 2 levels "1","2"1 2 1 2 1 2
 $ Age   : int  30 20 20 20 30 30
 
> paste0(demo$Gender, "_", demo$Age, "대")
[1"1_30대" "2_20대" "1_20대" "2_20대" "1_30대" "2_30대"
 
> demo$Group = paste0(demo$Gender, "_", demo$Age, "대")
 
> str(demo)
'data.frame':    6 obs. of  3 variables:
 $ Gender: Factor w/ 2 levels "1","2"1 2 1 2 1 2
 $ Age   : int  30 20 20 20 30 30
 $ Group : chr  "1_30대" "2_20대" "1_20대" "2_20대" ...
cs


levels() 함수로 범주형 변수의 수준 확인하고 바꾸기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
> levels(demo$Gender)
[1"1" "2"
 
> levels(demo$Gender) = c("1_남자""2_여자")
 
> demo
  Gender Age  Group
1 1_남자  30 1_30대
2 2_여자  20 2_20대
3 1_남자  20 1_20대
4 2_여자  20 2_20대
5 1_남자  30 1_30대
6 2_여자  30 2_30대
 
> demo$Gender
[1] 1_남자 2_여자 1_남자 2_여자 1_남자 2_여자
Levels: 1_남자 2_여자
 
> as.numeric(demo$Gender)
[11 2 1 2 1 2
cs


levels() 함수로 수준 이름을 바꾸어도, as.numeric() 함수로 숫자로 바꿔보면 숫자 형태로 저장되어 있는 것을 확인할 수 있다.

첫 번째 관측치는 1의 값을 가진다. 이 1은 수준 중 첫 번째 값을 참조해서 "1_남자"라는 결과를 출력한다. 2라는 값 역시 수준에서 두 번째 값 "2_여자"를 참조하는 것이다.

따라서 각 관측치들의 숫자들이 참조하는 수준을 바꾸면 우리 눈에 보이는 결과도 달라진다.

which() 함수로 조건과 일치하는 관측치 찾기

1
2
3
4
5
6
7
8
> demo$Age == 30
[1]  TRUE FALSE FALSE FALSE  TRUE  TRUE
 
> which(demo$Age == 30)
[11 5 6
 
> which(demo$Age == 30 & demo$Gender == '1_남자')
[11 5
cs


조건을 만족하는 관측치가 데이터의 어디에 위치하고 있는지 궁금할 때, which() 함수 안에 논리연산으로 조건을 넣으면, 결괏값이 TRUE 인 관측치의 번호를 출력한다.


다음 시간에 배울 것

R 기본 함수



댓글