대충벌레 블로그
article thumbnail
Published 2021. 1. 18. 18:00
R 언어 공부정리 [2] IT 기술/R
728x90
반응형

그래픽 함수인 ggplot2를 사용하면 눈으로 쉽게 확인할수 있다.

만약 라이브러리가 없다면 명령어를 통해 설치해줍시다

 

install.packages('ggplot2')
# 라이브러리 설치후에는 반드시 로드를 해야합니다.
library(ggplot2)

RStudio를 종료했다가 키면 packages의 경우에는 남아있지만 라이브러리는 사용시마다 실행시켜서 로드해줘야 합니다.

 

우선 간단한 예시를 보여드리겠습니다.

gg <- c('티','스','토','리','블','로','그','티','토','블')
gg

그냥 gg 실행시 [1] "티" "스" "토" "리" "블" "로" "그" "티" "토" "블"  캐릭터형 타입이 나옵니다

qplot() 이라는 명령어는 빈도 그래프인데 어떠한 요소가 몇번 나오는지 그래프로 보여줍니다.

qplot(gg)

이제는 R에 기본적으로 내장되어 있는 예제를 활용해서 테스트 해보겟습니다.

mpg

mpg는 자동차 종류에 따른 마일리지와 연비 정보가 저장된 데이터입니다.

만약 로드되지않는다면 library(ggplot2)를 해주시거나 mpg <- as.data.frame(ggplot2::mpg) 이렇게 해주세요

library(ggplot2)
mpg <- as.data.frame(ggplot2::mpg)
mpg           

mpg 안의 데이터의 컬럼에 대해 설명입니다.

# manufacturer : 제조업체
# model : 차모델
# displ : 배기량
# year : 연식
# cyl : 기토 4기통 8기통
# trans : 수동,자동
# drv : 구동방식 전률 ,후륜 ,사륜 드라이브
# cty : 도시연비
# hwy : 고속도로 연비
# fl :기름종류 
# class : 등급 , 컴펙 , 대형차 , 소형차

우선 동일대역 연비가 몇대씩 분포하는지 확인해 보도록 하겟습니다.

qplot(data =mpg , x=cty)

 

이번엔 x축은 구동방식 y축은 고속도로 연비 빈도를 확인해보겟습니다

qplot(data=mpg,x=drv,y=hwy)

4는 4륜 구동 f는 전륜 구동 r은 후륜 구동 입니다

qplot은 선그림 혹은 상자그램 그리고 색상으로도 구분이 가능합니다.

 

선그림

qplot(data=mpg,x=drv,y=hwy,geom='line')

geom='line' 속성을 추가하였습니다

상자그램

상자그램의 경우 데이터의 기본적인 것을 분석시에 많이 사용합니다

qplot(data=mpg,x=drv,y=hwy,geom='boxplot')

색상 추가(변경) 하기 

drv별로 색상을 바꾸어보겠습니다.

R언어에서 신기한건 color 를 colour 이라고 표현합니다 두개다 이상없는 결과이고 나무위키 글을 보면

 R이 가지는 특이사항 중 하나로, color를 colour라고 쓰는 것 또한 인정된다. 영국식 영어를 사용하는 
뉴질랜드에서 개발돼서 얻은 특징인듯.
qplot(data=mpg,x=drv,y=hwy,geom='boxplot', colour=drv)
qplot(data=mpg,x=drv,y=hwy,geom='boxplot',color=drv)

데이터 프레임을 생성해보자

우선 예시로 영어점수와 수학점수를 만들어 보겟습니다.

english <- c(90,80,60,70)
english

math <- c(50,60,100,20)
math

데이터 프레임을 만드는 방법은 말그대로 data.frame( , , ) 이런식으로 작성해주면 됩니다.

위에서 만든 영어와 수학을 가지고 만들어 보겟습니다.

df_midterm <- data.frame(english,math)  # 데이터 프레임화 시킨다.
df_midterm

   english math
1      90   50
2      80   60
3      60  100
4      70   20 

 

이번에는 반 컬럼도 추가해 주도록 하겠습니다.

class <- c(1,1,2,2)
df_midterm <- data.frame(english,math,class)
df_midterm

class를 생성해주고 data.frame에 class를 추가해줍니다.

  english math class
1      90   50     1
2      80   60     1
3      60  100     2
4      70   20     2

 

데이터 프레임 생성시 컬럼명도 지정해 줄수 있습니다.

df_midterm <- data.frame(english=c(90,80,60,70),math=c(50,60,100,20),class=c(1,1,2,2))
df_midterm

본인이 편한 방법을 사용하시면 됩니다.

 

영어의 평균과 수학의 평균을 구해보도록 하겠습니다 .

저번글에 마지막에 적었던 mean() 함수를 사용하면 됩니다.

 

mean(df_midterm$english)   # 영어 평균
mean(df_midterm$math)      # 수학 평균


# ======== 실행 결과 ============
> mean(df_midterm$english)  
[1] 75
> mean(df_midterm$math)
[1] 57.5

 

외부파일을 불러오기

R 에서 외부 엑셀 파일을 읽을려면 readxl 패키지가 필요하다.

install.packages("readxl")
library(readxl)

readxl 패키지를 가져와서 만드시 library(readxl)로 로드해주어야 한다.

로드를 했다면 새변수에 할당해서 사용해 봅시다.

 

실습할 데이터파일은 Doit_R 깃헙에서 가져오도록 하겠습니다.

github.com/youngwoos/Doit_R/tree/master/Data

 

youngwoos/Doit_R

저장소. Contribute to youngwoos/Doit_R development by creating an account on GitHub.

github.com

 

df_exam <- read_excel("excel_exam.xlsx")
df_exam

만약 가져올 엑셀파일에 컬럼이름이 지정되있지 않다면 첫줄이 컬럼명으로 전환되게 됩니다.

그럴땐 col_names = F 를 지정해주면 임의의 컬럼명을 지원하게 됩니다.

df_exam_no <- read_excel("excel_exam_novar.xlsx",col_names = F)
df_exam_no

왼쪽은 지정전 데이터프레임 , 오른쪽이 지정후 데이터 프레임

만약 본인이 읽고자 하는 엑셀 파일 내용이 3번째 시트(sheet) 에 있는경우에는

sheet = 3 ( 읽고자 하는 시트) 를 지정해 주어야한다.

df_exam_sh <- read_excel("excel_exam_sheet.xlsx",sheet = 3)
df_exam_sh

 

CSV 파일 읽기

csv 파일을 읽을때는 엑셀과 약간 다릅니다 

엑셀은 read_excel()  csv파일은 read.csv() 

df_csv_exam <- read.csv("csv_exam.csv")
df_csv_exam

데이터 프레임 생성시 만약 문자형이 있다면 자동으로 Factor(범주형)으로 인식을 하는데

read.csv("csv_exam.csv",stringsAsFactors= F) 를 넣어주게 되면 Character로 입력이 가능하다.

 

만약 csv 파일을 생성할려고 한다면 read와 반대로 write.csv(데이터프레임,'csv파일명')으로 생성이 가능하다.

# id class math english science
# 1   1     1   50      98      50
# 2   2     1   60      97      60
# 3   3     1   45      86      78
# 4   4     1   30      98      58

위와 같은 형식의 데이터 프레임을 만들고 csv 파일로 저장하려고 한다면

df <- data.frame(id=c(1,2,3,4), class =c(1,2,3,4) , math = c(50,60,45,30) , english = c(98,97,86,98) , science = c(50,60,78,58)) #이렇게 데이터 프레임을 생성해 주고
df_csv <- write.csv(df,'df_csv.csv') # write.csv를 통해 df를 df_csv.csv 파일로 만들고 df_csv이름으로 데이터프레임을 생성
df_csv <- read.csv('df_csv.csv') # df_csv.csv 파일을 읽어서 df_csv 에 넣는다

2번째 3번째 라인에 df_csv <- 이것처럼 필요하지 않다면 굳이 새로 생성하지 않아도 된다.

write.csv 명령어 시 

파일이 생성된것을 확인할수 있고

read.csv 명령어 시 

정상적으로 읽는것을 확인할수 있다.

R에서는 데이터프레임 객체를 파일로도 저장할때 많이 쓰이는 형식은 csv 와 rda 이다

siren99.tistory.com/3

 

[R] 데이터를 CSV와 RDA 파일로 저장

R에서 데이터를 여러 파일로 저장할 수 있다. 가장 많이 쓰이는 파일 형식은 CSV와 RDA일 것이다. CSV는 comma separated values의 약자로 말 그대로 데이터 값들이 comma (,)로 나누어진 파일이다. 이 파일의

siren99.tistory.com

간략하면서도 필요한 내용은 적혀있는거 같아서 가져와보았다.

 

일단 rda 파일로 저장하는 법은 

# save(객체,파일명) 
# 즉
save(df,file='df_file.rda')

rda 파일의 특징은 파일을 load('df_file.rda') 시 자동으로 객체가 생성된다 

만약 객체가 필요가 없다면 rm(df) 이런식으로 삭제를 해줍니다.

 

 

 

반응형

'IT 기술 > R' 카테고리의 다른 글

R언어 공부 정리 [6]  (0) 2021.01.22
R언어 공부 정리 [5]  (0) 2021.01.21
R언어 공부 정리 [4]  (2) 2021.01.20
R 언어 공부 정리 [3]  (1) 2021.01.19
분석 , 통계시 유용한 R 언어 설치와 기본 공부 정리  (0) 2021.01.15
profile

대충벌레 블로그

@대충벌레

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!