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

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

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

 

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

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

 

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

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

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

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

<go />
qplot(gg)

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

<go />
mpg

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

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

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

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

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

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

<go />
qplot(data =mpg , x=cty)

 

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

<go />
qplot(data=mpg,x=drv,y=hwy)

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

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

 

선그림

<go />
qplot(data=mpg,x=drv,y=hwy,geom='line')

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

상자그램

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

<go />
qplot(data=mpg,x=drv,y=hwy,geom='boxplot')

색상 추가(변경) 하기 

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

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

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

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

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

<go />
english <- c(90,80,60,70) english math <- c(50,60,100,20) math

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

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

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

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

 

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

<go />
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

 

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

<go />
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() 함수를 사용하면 됩니다.

 

<go />
mean(df_midterm$english) # 영어 평균 mean(df_midterm$math) # 수학 평균 # ======== 실행 결과 ============ > mean(df_midterm$english) [1] 75 > mean(df_midterm$math) [1] 57.5

 

2. 외부파일을 불러오기

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

<go />
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

 

<go />
df_exam <- read_excel("excel_exam.xlsx") df_exam

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

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

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

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

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

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

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

 

CSV 파일 읽기

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

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

<go />
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 파일로 저장하려고 한다면

<go />
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 파일로 저장하는 법은 

<go />
# 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

대충벌레 블로그

@대충벌레

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