[혼공R이] #2. 데이터 분석을 위한 기본 다지기
2. 데이터 분석을 위한 기본 다지기
1) 데이터 분석 과정
2) 데이터의 생김새
1) 데이터 분석 과정
1단계 | 2단계 | 3단계 | 4단계 | 5단계 |
데이터 분석 설계 | 데이터 준비 | 데이터 가공 | 데이터 분석 | 결론 도출 |
주제 선정 가설 설정 분석항목 선정 |
데이터 확보 데이터 파악 |
추출 및 정제 파생변수 생성 데이터 병합 |
통계 분석 시각화 |
가설 검정 결과 정리 |
2) 데이터의 생김새
(1) 데이터 구조
- 데이터 세트(= 테이블) : n X m 형태의 행(관측치)과 열(변수)로 구성된 형태
(2) 데이터 유형
숫자형 | 문자형 | 논리형 |
숫자로만 구성 | 문자로만 구성 | TRUE / FALSE |
구분 | 1차원 | 2차원 | n차원 |
단일형(한 가지 유형) | 벡터 | 행렬 | 배열 |
다중형(여러 유형) | 리스트 | 데이터 프레임 | - |
(3) 데이터 종류
① 벡터 : 한 가지 유형으로 구성된 1차원 구조의 데이터
[벡터] 변수명 <- c(값) | |||
숫자형 | 정수형 | 문자형 | 논리형 |
실수(정수, 유리수, 무리수 등) | 정수만으로 구성 실수형에 포함됨 |
문자로 구성 | TRUE, FALSE로 구성 |
num <- c(-1, 0, 3.14) | int <- c(-1, 0, 1) | chr <- c("Hello", "35") | logi <- c(TRUE, FALSE) |
> mode(num) [1] "numeric" > str(num) num [1:3] -1, 0, 3.14 |
> mode(int) [1] "numeric" > str(int) int [1:3] -1, 0, 1 |
> mode(chr) [1] "character" > str(chr) chr [1:2] "Hello" "35" |
> mode(logi) [1] "logical" > str(logi) logi [1:2] TRUE FALSE |
- mode() 함수 : 데이터 유형 확인 (ex, "numeric")
- str() 함수 : 데이터 유형 및 값 확인 (ex, num [1:3] -1, 0, 3.14)
- length() 함수 : 데이터 길이 확인 (ex, 3)
- factor() 함수 : factor(범주화할 자료, labels = c("범주1", "범주2"))
> factor( c(3, 1, 2), labels = c("A", "B", "C") )
[1] C A B
② 행렬 : 한 가지 유형으로 구성된 2차원 구조의 데이터
[행렬] matrix(벡터, nrow=행 개수, ncol=열 개수) | |
x <- c(1, 2, 3, 4, 5, 6) matrix(x, nrow=2, ncol=3) |
x <- c(1, 2, 3, 4, 5, 6) matrix(x, nrow=2, ncol=3, byrow=T) |
[ ,1] [ ,2] [ ,3] [1, ] 1 3 5 [2, ] 2 4 6 |
[ ,1] [ ,2] [ ,3] [1, ] 1 2 3 [2, ] 4 5 6 |
* byrow = T : 데이터가 위에서 아래(행 기준) 순으로 배치됨
③ 배열 : 행렬을 n차원으로 확대한 구조의 데이터
[배열] array(변수명, dim=c(행 개수, 열 개수, 차원 수)) | |
y <- c(1, 2, 3, 4, 5, 6) array(y, dim=c(2, 2, 2)) |
y <- c(1, 2, 3, 4, 5, 6) array(y, dim=c(1, 4, 2)) |
, , 1 [ ,1] [ ,2] [1, ] 1 3 [2, ] 2 4 , , 2 [ ,1] [ ,2] [1, ] 5 1 [2, ] 6 2 |
, , 1 [ ,1] [ ,2] [ ,3] [ ,4] [1, ] 1 2 3 4 , , 2 [ ,1] [ ,2] [ ,3] [ ,4] [1, ] 5 6 1 2 |
④ 리스트 : 여러 데이터 유형이 포함된 1차원 구조의 데이터
[리스트] list( ) | |
z <- list(c(1, 2, 3), "Hello") | str(z) |
[[1]] [1] 1, 2, 3 [[2]] [1] "Hello" |
List of 2 #두 가지 변수로 구성된 리스트 $ : num [1:3] 1 2 3 $ : chr "Hello" |
⑤ 데이터 프레임 : 리스트를 2차원으로 확대한 구조의 데이터
[데이터 프레임] data.frame(변수명1, 변수명2, ... 변수명n) | |
ID <- c(1, 2, 3, 4, 5) SEX <- c("F", "M", "F", "M", "M") AGE <- c(50, 30, 25, 43, 15) xyz <- data.frame(ID, SEX, AGE) xyz |
str(xyz) |
1 1 F 50 2 2 M 30 3 3 F 25 4 4 M 43 5 5 M 15 |
'data.frame': 10 obs. of 4 variables: $ ID : num 1 2 3 4 5 $ SEX : chr "F" "M" "F" "M" "M" $ AGE : num 50 30 25 43 15 |
2주차. 기본 미션
p99의 확인문제 3, 4번 풀고 인증하기
문3. 문자형으로 이루어진 데이터 1, 2, 3, 4, 5는 ID 변수로, 숫자형으로 이루어진 데이터 10, 25, 100, 75, 30은 MID_EXAM 변수로, 문자형으로 이루어진 데이터 1반, 2반, 3반, 1반, 2반은 CLASS 변수로 구성해 보세요.
문4. data.frame() 함수와 3번 문항에서 구성한 ID, MID_EXAM, CLASS 변수를 사용하여 example_test 데이터 세트를 저장해 보세요.
2주차. 선택 미션
데이터 분석 과정을 정리하기
1단계 | 2단계 | 3단계 | 4단계 | 5단계 |
데이터 분석 설계 | 데이터 준비 | 데이터 가공 | 데이터 분석 | 결론 도출 |
주제 선정 가설 설정 분석항목 선정 |
데이터 확보 데이터 파악 |
추출 및 정제 파생변수 생성 데이터 병합 |
통계 분석 시각화 |
가설 검정 결과 정리 |