본문 바로가기
프로그래밍언어/R

[R] : 기술 통계 값 구하기

by 오주현 2022. 3. 23.
반응형
library("data.table")

DF <- fread("example_studentlist.csv", data.table=f)
DF
# 기술통계 값을 구하기 전에 파일을 불러온다.

attach(DF)
# search()로 DF가 있는지 확인하고 이미 있다면 detach(DF)로 삭제 후 새로 올린다.
# DF$height 하지 않고 height해도 객체에 접근이 가능하다.

mean(height, na.rm=T)
# 평균을 구한다.
# na.rm=T 인자는 NA값이 있다면 평균은 NA가 되기 때문에 NA값을 제거하고 평균을 구한다.

median(height, na.rm=T)
# 중앙값을 구한다.

range(height, na.rm=T)
# 범위를 구한다.

quantile(height, na.rm=T)
# 사분위를 구한다.
# 50%는 평균이 아니라 중앙값이다.

IQR(height, na.rm=T)
# IQR 구하기
# 사분위에서 Q1와 Q3의 범위를 나타낸다.

summary(height, na.rm=T)
# 평균, 중앙값, Q1, Q3 한 번에 본다.
# summary() 함수를 사용하면 지금까지 구한 대부분의 값을 한 번에 확인이 가능하다.

boxplot(height)
# NA값을 기본적으로 제거하고 그려준다.

cor(height, weight)
# 상관계수를 다룬다. 두 변수만 넣으면 상관계수를 바로 구해준다.

cor.test(height, weight)
# 상관계수, P-value, 신뢰구간까지 알 수 있다.

cor(DF[,c(3,7,8)])
# 여러가지 변수들간의 상관계수를 한번에 확인할 수 있다.
# age와 height는 0.345로 상관관계가 거의 없고 height와 weight는 0.66...으로 상관관계가 조금 있다.

cor(height, weight, use="complete.obs")
# 여러 변수를 다루는 함수에서 결측치 다루기

DF2 <- DF
DF2[2,7] <- NA
DF2[4,8] <- NA
DF2
attach(DF2)
# DF2라는 객체를 만들고 일부러 NA(결측치)를 넣어 테스트한다.

cor(height, weight)
# 값이 구해지지 않는다.

cor(height, weight, use="complete.obs")
# 이 옵션은 NA값이 있다면 해당 관측치 자체를 빼고 계산한다.
# use="complete.obs"는 관측치 자체를 빼지 않고 NA가 포함된 벡터에서만 빼고 계산한다.

cor(height, weight, use="everthing")
# NA값도 포함해서 값을 구한다.

cor(height, weight, use="all.obs")
# use="all.obs"를 사용할 때 결측치가 있으면 계산 자체를 하지 않는다.

var(height, na.rm=T)
# 분산과 공분산 구한다.

var(height, weight, na.rm=T)
# var()의 다른 기능은 두 개 변수를 넣을 수 있다는 것이다.

var(DF[,c(3,7,8)],na.rm=T)
# 공분산 값이다. 세 개 이상 변수를 넣으면 매트릭스로 서로 공분산 값을 구해준다.

sd(height, na.rm=T)
# sd()함수는 한 개 변수만 넣어 구할 수 있다.

scale(height)
# 표준화를 해본다.
# 표준화된 값은 matrix로 반환해 준다.

sd(height)/mean(height)
# 변동 계수를 구해본다.
# 변동 계수를 구하는 내장된 함수는 없어서 표준편차를 평균으로 나눈다.

sd(weight)/mean(weight)
# 몸무게도 구한다.
# 몸무게가 더 많이 분산되어 있다는 사실을 알 수 있다.

 

주석에 코드 내용을 적어봤다.

반응형

'프로그래밍언어 > R' 카테고리의 다른 글

[R] : 함수와 객체  (0) 2022.04.19
[R] : 고수준 그래프 함수  (0) 2022.04.06
[R] : 데이터 프레임 다루기(4)  (0) 2022.03.23
[R] : 데이터 개념 이해하기(3)  (0) 2022.03.14
[R] : 데이터 개념 이해하기(2)  (0) 2022.03.14

댓글