혼공학습단/혼자 공부하는 R 데이터 분석

[혼공R이] #4. 데이터 다루기

✨️데이터분석가✨️ 2024. 7. 22. 10:00
728x90
728x90
4. 데이터 다루기
    1) 데이터 수집하기
    2) 데이터 관측하기
    3) 데이터 탐색하기

 

1) 데이터 수집하기

(1) TXT 파일 가져오기

- read.table("원시 데이터", header=TRUE, skip=0, nrows=-1, sep=",", ...)

  * 원시 데이터: 저장된 파일 경로를 작성하며, 슬래시(/)를 사용함

  * header: 첫 번째 행이 변수명인지 아닌지 판단함

    (변수명이 없다면, col.names를 사용하여 변수명을 지정)

  * skip: 특정 행 이후부터의 데이터를 가져옴

  * nrows: 특정 행까지의 데이터를 가져옴

  * sep: 구분자를 지정함

 

 

(2) CSV 파일 가져오기

- read.csv("원시 데이터")

  * 옵션을 설정하지 않아도 자동으로 1행을 변수명으로 가져옴

 

 

(3) 엑셀 파일 가져오기

- install.packages("readxl") 패키지 설치 후, 엑셀 파일을 가져올 수 있음

- read.excel("원시 데이터")

- 다른 탭 시트 데이터를 가져오려면, sheet = 3을 옵션으로 지정해야 함

  * 옵션을 설정하지 않아도 자동으로 1행을 변수명으로 가져옴

 

 

(4) XML 파일 가져오기

- 사용자가 <> 괄호로 직접 정의한 태그에 데이터 내용이 들어있는 파일

- install.packages("XML") 패키지 설치 필요

- xmlToDataFrame("원시 데이터")

 

 

(5) JSON 파일 가져오기

- 데이터 속성과 값이 쌍으로 이루어진 중첩 데이터 구조의 파일, 가장 많이 사용

- install.packages("jsonlite") 패키지 설치 필요

- fromJSON("원시 데이터")

- 데이터 프레임으로 가져오는 함수가 아니라서, 실행 결과는 str( ) 함수로 확인

 

 

 


2) 데이터 관측하기

(1) 데이터 전체 확인하기

- data( ) 함수로 내장된 데이터 세트 목록을 전부 확인할 수 있음

 

 

(2) 데이터 구조 확인하기

- str( ) 함수로 데이터 구조를 확인할 수 있음

데이터 구조 확인
데이터 구조 확인

* 150개의 관측치 및 5가지 컬럼으로 구성됨

* $는 컬럼명, num은 숫자형 데이터, Factor 자료형에 3가지 범주로 구성됨을 의미함 

 

개수 확인 개수 확인 행 및 열 개수 확인
ncol( ) 함수 nrow( ) 함수 dim( ) 함수
ncol(iris)
[1] 5
nrow(iris)
[1] 150
dim(iris)
[1] 150  5
컬럼명 확인 부분 데이터 확인 부분 데이터 확인
ls( ) 함수 head( ) 함수 tail( ) 함수
ls(iris)
[1] "Length" "Width"
head(iris)
Length  Width
1          5.1      3.5      
2          4.9      3.0      
...
6          5.4      3.9      
tail(iris, n = 3)
Length  Width
148       6.5      3.0      
149       6.3      3.4      
150       5.9      3.0      

 

 

(3) 기술통계량 확인하기

평균 중앙값
mean( ) 함수 median( ) 함수
mean(iris$Length)
[1] 5.843333
median(iris$Length)
[1] 5.8
최솟값 최댓값 범위
min( ) 함수 max( ) 함수 range( ) 함수
min(iris$Length)
[1] 4.3
max(iris$Length)
[1] 7.9
range(iris$Length)
[1] 4.3  7.9
사분위수 분산 표준편차
quantile( ) 함수 var( ) 함수 sd( ) 함수
quantile(iris$Length)
0%   25%  50%  75%  100%
 4.3    5.1    5.8     6.4     7.9   

quantile(iris$Length, probs=0.8)
80%
6.52
var(iris$Length)
[1] 0.685935
sd(iris$Length)
[1] 0.8280661
첨도 (뾰족한 정도) 왜도 (대칭 정도)
kurtosi( ) 함수 skew( ) 함수
install.packages("psych")
library(psych)

kurtosi(iris$Length)
[1] -0.6058125  # 완만한 분포
install.packages("psych")
library(psych)

skew(iris$Length)
[1] 0.3086407  # 오른쪽 긴 꼬리 분포

 

 

(4) 빈도분석하기

install.packages("descr") 패키지 설치 필요

- freq(변수명) 함수

  * plot = F는 막대 그래프 출력이 제외되는 옵션

빈도분석하기
빈도분석하기

 

 

 


3) 데이터 탐색하기

(1) 막대 그래프

- 빈도 분포를 확인할 때 사용하는 그래프

- table(변수명)

- barplot(변수명, ylim=c(y축 범위), main="제목", xlab="x축 제목", ylab="y축 제목", names=c("변수명", ...), col=c("색상", ...), ...)

  * ylim: 출력할 y축 범위 지정

  * main: 그래프 제목을 지정

  * col: 그래프 색상을 지정

table( ) 함수 barplot( ) 함수
> dist_sex <- table(data1$SEX)
> dist_sex
> barplot(dist_sex)
> barplot(dist_sex, ylim=c(0, 14), main="BARPLOT", xlab="SEX", ylab="FREQUENCY", names=c("Female", "Male"), col=c("pink", "blue"))
F   M
12  8
table
barplot

 

 

(2) 상자 그림

- 데이터 분포 or 이상치 판단 시에 사용하는 그래프

boxplot(변수명)

 > boxplot(data1$Y20_CNT, data1$Y21_CNT, ylim=c(0, 60), main="boxplot", names=c("20년건수", "21년건수"), col=c("green", "yellow"))

상자 그림, boxplot
상자 그림, boxplot

 

 

(3) 히스토그램

- 일정 구간별 관측치의 분포를 확인할 때 사용하는 그래프

- hist(변수명)

막대 그래프, barplot( ) 히스토그램, hist( )
이산형 연속형
성별, 지역 등 키, 나이, 금액 등
막대 그래프가 분리되어 있음 막대 그래프가 붙어 있음

 > hist(data1$AGE, xlim=c(0, 60), ylim=c(0, 7), main="AGE분포")

히스토그램, hist
히스토그램, hist

 

 

(4) 파이차트

- 데이터 빈도 비율을 활인할 때 사용하는 그래프

- pie(변수명)

 > data(mtcars)

 > pie(table(mtcars$gear))

파이차트, pie
파이차트, pie

 

 

(5) 줄기 잎 그림

- 변수 값을 자릿수로 분류하여 시각화 (큰 자릿수는 줄기, 작은 자릿수는 잎)

- stem(변수명, scale = 1)

  * scale은 줄기의 수, 데이터를 나누는 구간을 의미

x <- c(1, 2, 3, 4, 7, 8, 8, 5, 9, 6, 9)
> stem(x) > stem(x, scale = 2) > stem(x, scale = 0.5)

 

 

(6) 산점도

- 두 변수 간의 관계를 점으로 나타낸 그래프, 우상향 형태는 상관관계가 있음을 의미함

- plot(x, y)

 > data(iris)
 > plot(x=iris$Sepal.Length, y=iris$Petal.Width)

산점도, plot
산점도, plot

 

- 산점도 행렬: 산점도를 행렬로 표현한 그래프, pairs(변수명), paris.panel( ) 함수

> data(iris)
> pairs(iris)
> install.packages("psych")
> library(psych)
> data(iris)
> pairs.panels(iris)

※ 데이터 유형에 따른 그래프 추천: From data to Viz 홈페이지(https://www.data-to-viz.com)

 

 

 

 


 

4주차. 기본 미션

p169의 iris 내장 데이터 세트의 데이터 구조 출력하고 인증하기

4주차. 기본 미션
4주차. 기본 미션

 

 

4주차. 선택 미션

p191 상자 그림 그래프의 각 요약 값 정리하기

4주차. 선택 미션
4주차. 선택 미션

 

 

 

 

728x90
728x90