Chapter 04 : 데이터 다루기

1. 데이터 수집하기

  1. JSON 파일

: 데이터 안에 다시 데이터가 정의된 중첩 데이터 구조

  • 파일을 가져오는 함수 fromJson()
#jsonlite 패키지 설치 및 로드하기

#install.packages('jsonlite')
#library(jsonlite)

2. 데이터 관측하기

1) 첨도와 왜도

  • 첨도 : 데이터 분포가 정규분포 대비 뾰족한 정도를 설명하는 통계량

  • 첨도 구하기 kursoti(변수명)

3. 데이터 탐색하기

1) 막대그래프 그리기

  • freq 함수
#install.packages('descr')
library(descr)

library(readxl)

exdata1 <- read_excel('C:/Users/DaBin/Desktop/혼자 공부하는 R 데이터 분석/Sample1.xlsx')

exdata1
## # A tibble: 20 × 13
##       ID SEX     AGE AREA  CAR_YN Y21_AMT Y21_CNT Y21F_AMT Y21O_CNT Y20_AMT
##    <dbl> <chr> <dbl> <chr>  <dbl>   <dbl>   <dbl>    <dbl>    <dbl>   <dbl>
##  1     1 F        50 서울       1 1300000      50   170000       25 1000000
##  2     2 M        40 경기       1  450000      25    50000       10  700000
##  3     3 F        28 제주       0  275000      10     7500        3  500000
##  4     4 M        50 서울       0 2300000       8    50000        3 2500000
##  5     5 M        27 서울       1  845000      30   130000       11  760000
##  6     6 F        23 서울       0   42900       1        0        1  300000
##  7     7 F        56 경기       0  150000       2     5000        1  130000
##  8     8 F        47 서울       1  650000      10    45000        6  400000
##  9     9 M        20 서울       0  930000       4    50000        3  250000
## 10    10 F        38 경기       0  520000      17    11000       10  550000
## 11    11 M        35 서울       0  150000       5    10000        3  490000
## 12    12 F        44 제주       1 1150000      53   270000       37 1150000
## 13    13 F        60 경기       0  550000      35   120000       10  800000
## 14    14 M        55 제주       1 1050000      15   300000        5 2900000
## 15    15 F        46 경기       1  600000      16   105000        4 1000000
## 16    16 F        32 서울       1  530000      15   380000        7 1000000
## 17    17 M        30 경기       1  250000       8    70000        6  400000
## 18    18 F        29 서울       1  150000       5     7000        3  100000
## 19    19 F        27 제주       0  300000      15   150000       10  320000
## 20    20 M        27 제주       1  130000       4    38000        2  150000
## # ℹ 3 more variables: Y20_CNT <dbl>, Y20F_AMT <dbl>, Y20O_CNT <dbl>
library(descr)
freq(exdata1$SEX,plot = T, main = '성별(barplot)')

## exdata1$SEX 
##       Frequency Percent
## F            12      60
## M             8      40
## Total        20     100
  • barplot 함수
dist_sex <- table(exdata1$SEX)
dist_sex
## 
##  F  M 
## 12  8
barplot(dist_sex,ylim = c(0,14),main = 'BARPLOT', xlab = 'SEX', ylab = 'FREQUENCY', names = c("Female", "Male"))

#막대그래프 색상 변경하기

barplot(dist_sex,ylim = c(0,14),main = 'BARPLOT', xlab = 'SEX', ylab = 'FREQUENCY', names = c("Female", "Male"),col = c('pink','navy'))

  • 히스토그램 그리기
hist(exdata1$AGE, xlim = c(0,60),ylim = c(0,7),main = 'AGE분포') 

  • 파이차트 그리기
data(mtcars)
x <- table(mtcars$gear)
pie(x)

  • 줄기 잎 그림 그리기
x <- c(1,2,3,4,7,8,8,5,9,6,9)

stem(x)
## 
##   The decimal point is at the |
## 
##   0 | 0
##   2 | 00
##   4 | 00
##   6 | 00
##   8 | 0000
#scale 옵션으로 구간 조정 : 줄기 수가 2배로 늘어남남

stem(x, scale = 2)
## 
##   The decimal point is at the |
## 
##   1 | 0
##   2 | 0
##   3 | 0
##   4 | 0
##   5 | 0
##   6 | 0
##   7 | 0
##   8 | 00
##   9 | 00
  • 산점도 그리기
data(iris)
plot(x = iris$Sepal.Length, y = iris$Petal.Width)

#psych 패키지로 산점도 행렬 그리기

#install.packages('psych')
library(psych)
data(iris)
pairs.panels(iris)

확인문제

1.

y1 <- c(10,15,20,30,40,50,60,55,66,77,80,90,100,200,225)

boxplot(y1)

### 2.

stem(y1)
## 
##   The decimal point is 2 digit(s) to the right of the |
## 
##   0 | 12234
##   0 | 5667889
##   1 | 0
##   1 | 
##   2 | 03

3.

plot(y1)