[R] 연습 33

[R] 시각화(graphics 패키지편)

가장 베이스 패키지인 graphics는 별도 설치 없이 바로 사용할 수 있다. graphics 패키지에는 plot( ), hist( ), barplot( ), pie( ), boxplot( ) 등이 있다. 함수 설명 plot( ) 산점도 hist( ) 히스토그램 barplot( ) 막대그래프 pie( ) 파이 차트 boxplot( ) 박스 플롯 1. plot 함수 plot(x축 데이터, y축 데이터, [ xlab = "x축 이름", ylab = "y축 이름", main = "그래프 제목", type = "p"] ) 데이터가 하나만 입력되면 x축은 Index로 자동 지정되고 y축에 데이터 값이 표현된다. type인자로 산점도의 출력 형태를 지정할 수 있다. p 점 출력 l (소문자 L) 선 출력 b 점, ..

[R] 연습 2022.01.22

[R] 기초 문법 4

2022.01.09 - [[R] 연습] - [R] 기초 문법 1 2022.01.13 - [[R] 연습] - [R] 기초 문법 2 2022.01.15 - [[R] 연습] - [R] 기초 문법 3 지난 포스팅에 이어서 R의 기본적인 문법을 계속해서 정리해볼 것이다. 팩터(Factor) 팩터는 범주형 자료를 표현factor(x = 범주형 데이터, levels = 범주 목록, labels = 범주별 표시 값, ordered = TRUE는 순서형, FALSE는 명목형)로 생성 # 팩터 예시 payment

[R] 연습 2022.01.16

[R] 기초 문법 3

2022.01.09 - [[R] 연습] - [R] 기초 문법 1 2022.01.13 - [[R] 연습] - [R] 기초 문법 2 지난 포스팅에 이어서 R의 기본적인 문법을 계속해서 정리해볼 것이다. 조건문 if문(if - else if - else) grade = 89 if(grade > 90){ print("A") } else if(grade > 80){ print("B") } else if(grade > 70){ print("C") } else { print("D") } # [1] "B" ifelse(조건식, 참일 때 실행문, 거짓일 때 실행문) # ifelse() 활용 예시 exam_result

[R] 연습 2022.01.15

[R] 기초 문법 2

2022.01.09 - [[R] 연습] - [R] 기초 문법 1 지난 포스팅에 이어서 R의 기본적인 문법을 계속해서 정리해볼 것이다. 리스트(list) 리스트의 형태는 (키, 값) 형태로 list(key = value, key = value, ...)로 작성 # 리스트 생성 예시 list(name = c("simon", "micheal", "kyle"), height = c(180, 176, 169) # $name # [1] "simon" "micheal" "kyle" # $height # [1] 180 176 169 추가로, 리스트 안에 리스트를 중첩으로 작성할 수도 있다. 행렬(Matrix) 행렬은 행과 열로 구성되어 있다. 벡터와 마찬가지로 한 가지 유형의 스칼라만 저장할 수 있다. matrix(d..

[R] 연습 2022.01.13

[R] 군집분석(k-means clustering편)

이전 포스팅에서는 차원축소의 방법 중 하나인 다차원 척도법(MDS)을 연습했었다. 시각화 과정에서 k-평균 군집화(k-means clustering)를 시행했었는데, 이번 포스팅에서 이를 한번 다시 다뤄보도록 하겠다. 군집분석 방법에는 계층적 군집화와 비계층적 군집화 방법이 있다. k-평균 군집화 방법은 비계층적 군집화 방법이며, 계층을 두지 않고 유사도를 바탕으로 미리 정한 k개의 군집들 중 하나에 할당한다. k-평균 군집화는 다음과 같은 순서로 진행한다. 초기 군집의 수, k개를 사용자가 정한다. k의 초기 평균값은 랜덤으로 정해진다. 각 레코드는 중심이 가장 가까운 군집으로 할당된다. 군집의 중심점을 다시 계산하고, 3 단계를 반복한다. 더 이상의 변화가 없으면 중단한다. 이제 코드를 연습해보도록 ..

[R] 연습 2021.12.26

[R] 차원축소(MDS편)

이전 포스팅에서 차원축소의 방법 중 하나인 PCA를 연습했었다. 2021.12.11 - [[R] 연습] - [R] 차원축소 (PCA편) 이번 포스팅에서는 다차원 척도법(MDS: Multi Dimensional Scaling)을 연습하고자 한다. 다차원 척도법은 n개의 개체간의 유사성을 바탕으로 2/3차원의 저차원 공간에 나타낼 수 있도록 하는 방법이다. 예를 들어 한 회사에서 판매 전략을 세우기 위해 시장에서 판매되는 제품들을 조사한 후 유사성을 알아보고자 한다. 데이터를 바탕으로 제품들 사이의 유사성, 비유사성을 2차원 공간상에 시각적으로 표현하여 분석할 수 있을 것이다. MDS에는 두 가지 방식이 있는데, 계량적 MDS(metric MDS), 비계량적 MDS(non-metric MDS)가 있다. 일단..

[R] 연습 2021.12.19

[R] reshape2 패키지 활용하기

지난 포스팅에서는 reshape 패키지의 melt()와 cast()함수를 사용하는 연습을 했었다. 주어진 데이터 셋을 탐색할 때 유용하게 사용할 수 있었다. 이번에는 reshape2 패키지의 함수들을 다루는 연습을 해보도록 하겠다. 내용적으로는 크게 다르지 않다. 사용하는 방법을 한번 더 익히고 또 다른 연습문제를 풀어본다고 생각하면 좋을 것 같다. 이번 포스팅에서도 insurance 데이터를 사용할 것이다. reshape2 패키지를 준비하고, 데이터를 불러온 후 5번째 열을 삭제하였다. library(reshape2) df

[R] 연습 2021.12.18

[R] reshape 패키지 활용하기

지난 포스팅에서 다루었던 내용은 정규화(Normalization)를 하는 방법에 대한 것이었다. 데이터를 본격적으로 분석하기에 앞서서 데이터를 탐색하는 과정은 매우 중요하기 때문에 이번에는 피벗 테이블을 작성할 수 있는 reshape 패키지를 다루는 연습을 할 것이다. 이번 포스팅에서는 insurance 데이터를 사용할 것이다. Q. 주어진 데이터를 피벗 테이블처럼 구성하고 싶다면? A. reshape 패키지의 melt()와 cast() 함수를 사용하자. melt() 함수는 여러 개의 열을 취해서 하나의 열로 쌓는다. 예시를 한번 보자. # 라이브러리 설치 install.packages("reshape") library(reshape) # 성(sex)와 지역(region)을 기준으로 melt() mlt

[R] 연습 2021.12.17

[R] 정규화(Normalization)편

이전 포스팅에서는 차원축소 방법 중 주성분 분석(PCA)에 대한 내용을 다루었다. 주성분 분석을 할 때 값의 스케일(scale)이 다를 경우 왜곡이 발생하기 때문에 정규화 과정을 진행한 후 분석을 해야했다. 따라서 이번에는 정규화(Normalization)를 하는 방법에 대해서 연습할 것이다. 이번 포스팅에서도 Cereals 데이터를 사용할 것이다. Q. 최소-최대 정규화(Min-Max Normalization)를 하고 싶다면? A. 사용자 정의 함수 방법, caret 패키지의 preProcess() 함수를 사용하자. 사실 최소-최대 정규화의 식만 알면 직접 구하는 것도 어렵지 않다. minmax

[R] 연습 2021.12.12

[R] 차원축소 (PCA편)

지금까지는 dplyr 패키지를 이용해서 데이터 프레임을 다루는 연습과 결측값, 이상값의 판별과 처리에 대한 부분을 연습했다. 이제는 데이터 분석에 앞서 또 하나 중요한 과정인 차원축소에 대한 부분을 다뤄보도록 하겠다. 차원축소 방법 중에 가장 기본적인 방법으로 주성분 분석(PCA)가 있다. 주성분 분석은 변수들의 선형 결합을 통해서 최대한 전체 정보를 설명할 수 있는 서로 독립적인 인공 변수로 변환하는 분석 방법이다. 예를 들어 기업의 신용평가를 위한 재무변수가 100개가 넘는데, 이러한 변수를 다 사용하면 오버피팅(overfitting)문제가 발생할 수 있다. 따라서 고차원에서 저차원으로 변환하는 방법이 필요하게 된다. 이론적인 내용에 대해서는 향후 다른 카테고리에 따로 정리할 예정이므로 여기서는 R로..

[R] 연습 2021.12.11

[R] 데이터 정제하기 (이상값편)

지난 포스팅에서는 결측치에 대해서 다루었다. 결측치 편에서 다루었던 내용을 요약하자면, 1) 데이터셋에 결측치가 있는지 확인하기 위해서는, summary(), is.na(), complete.cases() 함수를 사용하자. 2) 좀 더 보기 좋게 칼럼별 결측치의 개수를 알고 싶다면, apply(is.na(), 2, sum)이나 colSums(is.na()) 함수를 사용하자. 3) 결측값이 존재하는 행의 수를 확인하기 위해서는, sum(complete.cases()) 함수를 사용한다. 4) 결측치가 너무 많은 열 혹은 행을 삭제하고 싶다면, 열 직접 삭제를 하거나, 행을 삭제하고 싶다면, !is.na() / complete.cases() / filter() / na.omit() 함수를 사용할 수 있다. 5..

[R] 연습 2021.12.10

[R] dplyr 패키지 활용하기 (4편)

이번 포스팅에서는 dplyr 패키지에서 두 데이터프레임의 열 병합과 행 병합에 대해서 다루도록 하겠다. 이전 1~3편에서 다루었던 내용을 요약하자면, 1) 데이터프레임에서 특정 조건에 맞는 행을 추출하고 싶다면 filter()함수를 사용하자. 2) 데이터프레임에서 특정 열만 추출하고 싶다면 select()함수를 사용하자. 3) 데이터프레임에서 오름차순 정렬은 arrange() 함수를, 내림차순 정렬은 arrange(desc()) 함수를 사용하자. 4) 데이터프레임에서 파생변수 추가는 mutate() 함수를 사용하자. 5) 특정 변수를 기준으로 데이터를 요약하고 싶다면 group_by() 함수와 summarise() 함수를 사용하자. 이번에도 Cereals 데이터를 사용할 것이다. (첨부파일) Q. 두 개..

[R] 연습 2021.11.30

[R] dplyr 패키지 활용하기 (3편)

1편과 2편에서 다루었던 함수들은 총 4개이다. 1) 데이터프레임에서 특정 조건에 맞는 행을 추출하고 싶다면 filter()함수를 사용하자. 2) 데이터프레임에서 특정 열만 추출하고 싶다면 select()함수를 사용하자. 3) 데이터프레임에서 오름차순 정렬은 arrange() 함수를, 내림차순 정렬은 arrange(desc()) 함수를 사용하자. 4) 데이터프레임에서 파생변수 추가는 mutate() 함수를 사용하자. 이번 포스팅에서는 지정된 변수로 그룹화하는 방법과 요약 통계량 출력을 연습해보고 which() 함수도 사용해 볼 것이다. 항상 그렇지만 지난 내용과 직접적으로 언급하지 않은 함수나 과정이 포함될 수도 있다. 오늘은 새로운 Cereal 데이터를 사용해 볼 것이다. (첨부파일) Q. 특정 변수를..

[R] 연습 2021.11.29