728x90

R스튜디오에서 패키지를 설치/로드/사용, 데이터 프레임의 구성

그리고 자주쓰이는 기본적인 함수를 정리한 글입니다.

누군가에게 도움이 되었으면 좋겠습니다.


목차

  1. 패키지-설치/로드/사용
  2. R에서 사용할 수 있는 외부 파일 종류 - 엑셀/csv/rds
  3. 데이터 프레임의 구성
  4. 데이터 구조 파악 함수
  5. 디렉토리 관련 함수
  6. 조건문
  7. 기본 함수

1. 패키지

[목차로 이동]

 

* 패키지 설치는 한번만 하면 되지만 패키지 로드 작업은 R 스튜디오를 실행할 때마다 해줘야 패키지 내 함수를 사용할 수 있습니다. 또 패키지를 설치하기 위해서는 반드시 인터넷에 접속되어 있어야 합니다.

1) 패키지 설치
install.packages("원하는 패키지 명") 을 입력하고 실행하면 CRAN 서버에서 패키지를 다운로드 해 설치하고 콘솔 창에 결과를 출력

 

2) 패키지 로드
library("로드할 패키지 이름") 을 입력하고 실행하면 패키지가 로드 됨

 

3) 패키지 함수/데이터셋 사용
* 패키지 함수의 사용 설명대로 함수에 변수를 넣어주고 실행.
* 패키지 내의 데이터셋을 실습용으로 사용하고 싶다면 더블콜론(::)을 사용
(mpg <- as.data.frame(ggplot2::mpg))

 

tip) ?패키지명 / ?함수명 / ?데이터셋명 으로 메뉴얼을 볼 수 있음


2. R에서 사용할 수 있는 외부 파일 종류

[목차로 이동]

 

1) 엑셀 파일
흔히 사용되는 엑셀(excel)파일로, 파일의 확장자가 .xlsx 로 끝난다.

 

2) CSV(Comma-Separated Values) 파일
엑셀, SAS, SPSS 등 데이터 프로그램에서 읽고 쓰기가 가능한 데이터 파일. 콤마(,)로 데이터를 구분함.
엑셀파일에 비해 다양한 프로그램에서 사용이 가능하고, 용량이 작은 것이 특징.
파일의 확장자가 .csv 로 끝난다. 

 

3) RDS 파일
R 전용 데이터 파일로, R에서 읽고 쓰기가 빠르고 용량이 작다는 장점이 있음.
일반적으로 R사용자는 RDS파일로 분석작업을 하고, 외부에 전달할 때는 CSV파일로 전달하는 것이 일반적.
파일의 확장자가 .rds 로 끝난다.

 

 


3. 데이터 프레임의 구성

[목차로 이동]

 

 

* 데이터프레임은 행과 열로 구성된 표 처럼 생긴 데이터 형태
* 세로로 나열되는 열속성을 나타내며, 컬럼, 변수라고 한다. (빨간색 박스)
* 가로로 나열되는 행은 각 객체의 정보를 나타내며, row, case 라고 한다. (파란색 박스)
* 좋은 데이터 프레임이라고 하면 단순히 행이 많은 것이 아니라 많은 열을 갖고 있을 수록 좋은 데이터 프레임이라고 할 수 있다. 그 이유는, 열이 많을 수록 데이터의 다양한 조합이 가능하기 때문이다. 

 


4. 데이터 구조 파악 함수

[목차로 이동]

 

* 데이터를 외부파일에서 가져와 데이터프레임을 만든 뒤, 전체적인 데이터 프레임의 구조를 알 수 있게 해주는 함수 모음

함수 설명 예시
head( ) 데이터프레임의 일부만 출력하는 함수.
앞에서 부터 6개의 행을 출력함.
데이터프레임 이름뒤에 쉼표(,)를 쓰고
출력을 원하는 행의 갯수를 입력할 수 있음 
head_test <- read.csv("CSV.csv")
head(head_test , 3)
tail( ) 데이터프레임의 일부만 출력하는 함수.
뒤에서 부터 6개의 행을 출력함.
데이터프레임 이름뒤에 쉼표(,)를 쓰고
출력을 원하는 행의 갯수를 입력할 수 있음 
tail_test <- read.csv("CSV.csv")
tail(tail_test , 3)
View( ) 데이터 프레임을 콘솔창이 아닌
뷰어창에서 깔끔하게 볼 수 있음

뷰어창에서는 각 변수(열, 컬럼)을 정렬방식(오름차순, 내림차순)을 클릭으로 쉽게 할 수 있는 등
몇가지 기능이 있음

* 'v'는 반드시 대문자 'V'를 사용할 것
View(data_frame)
dim( ) 데이터 프레임이 몇 행, 몇 열로 되어 있는지 출력
앞 숫자는 '행', 뒷 숫자는 '열'을 의미함
dim(data_frame)
##10 15
##10행 15열을 의미
str( ) 데이터 프레임에 있는 변수(열, 컬럼)의
데이터 타입을 출력

변수들의 데이터 타입, 행과 열의 정보 그리고 변수에 해당하는 정보(행)를 간략하게 볼 수 있음
 str(data_frame)
summary( ) 변수의 값을 요약한 '요약 통계량'을 출력 summary(data_frame)

<summary 함수로 알 수 있는 요약 통계량>

Min 최솟값
1st Qu 1사 분위수
하위 25%(1/4) 지점에 위치하는 값
Median 중앙값
Mean 평균
3rd Qu 3사 분위수
하위 75%(3/4) 지점에 위치하는 값
Max 최댓값

 


5. 디렉토리 관련 함수

[목차로 이동]

 

함수 설명 예시
getwd( ) 콘솔 창에 현재 워크디렉토리를 출력 getwd()
setwd( ) 워크디렉토리를 바꿈 set("디렉토리")

 


6. 조건문

[목차로 이동]

 

* 조건을 만족하면 "true"에 위치한 값을 반환하고, 그렇지 않다면 "false"에 위치한 값을 반환
* 데이터프레임$생성할 변수명 <- if(데이터프레임$기존변수 조건, "true", "false")
  데이터프레임에 변수를 추가해 조건문 결과를 출력한다
* ifesle는중첩해서 사용할 수 있다.

mpg$grade <- ifelse(mpg$total >= 30, "A",
			ifelse(mpg$total >= 25, "B")
               		     	ifelse(mpg$total >=20, "C", "D"))

 


7. R 기본 함수 모음

[목차로 이동]

 

* by, collapse와 같은 파라미터도 같이 사용할 수 있는 함수와 같이 보기 위해 한 테이블에 정리했습니다.

함수 설명 예시
c( ) 변수에 여러개의 값을 넣는 기능 var <- c(1, 2, 3, 4, 5, 6)

## 1 2 3 4 5 6
seq( ) 연속 값을 지닌 변수 생성

* 콜론(:)과 같은 기능
var1 <- seq(1, 5)
var2 <- c(1:5)

## 1 2 3 4 5
by 일정한 간격을 두고 연속된 숫자로 된 변수 생성 var <- seq(1, 10, by=2)

## 1, 3, 5, 7, 9
mode( ) 입력된 객체의 데이터타입을 반환 mode(1)
## "numeric"

mode("1")
## "character"
mean( ) 평균을 구해 반환 x <- c(1, 2, 3)
mean(x)

##2
max( ) 인자로 들어온 값들 중 최댓값을 반환 max(1, 2, 3)

##3
min( ) 인자로 들어온 값들 중 최솟값을 반환 x <- c(1, 2, 3)
min(x)

##1
paste( ) 여러 문자를 하나로 합쳐서 반환 paste("a", "b", "c")

## a b c
collapse="" paste로 붙인 문자들을 구분하도록 설정 var <- c("a", "b", "c")
paste(var, collapse="/")

## a/b/c
 data.frame( ) 괄호안에 들어 온 변수로 데이터프레임을 만듬
들어온 변수는 데이터프레임의 열(칼럼, 변수)로
프레임을 구성
df_student <- data.frame(name, ph)
as.data.frame( ) 데이터 속성을 데이터 프레임 형태로 바꿔주는 함수 mpg <- as.data.frame(ggplot2::mpg)
 $ 데이터프레임 안에 있는 변수를 지정할 때 사용 df_student <- data.frame(name, gpa)
mean(df_student$gpa)
rm( ) 데이터 삭제 rm(df_test)
# 데이터 프레임을 삭제

rm(list=ls())
#모든 변수를 삭제
  hist( ) 변수에 해당하는 값들의 빈도를 막대로 표현 hist(데이터프레임명$변수)

hist(df_origin$total)
 table( ) 데이터프레임 변수의 빈도를
콘솔창에서 테이블 형태로 볼 수 있음
table(데이터프레임명$변수)
< 결측치 제외 >
 is.na( ) 결측치는 TRUE, 아닌 값은 FALSE를 표시

table( )과 함께 사용하면 더 간단히
결측지 확인가능

filter( )와 함께 사용해 결측치 행 제거 가능
'&'으로 in.na( )에 들어가는 변수를 나열 할 수 있음
is.na(df_test)

table(is.na(df_test$column))
##table과 함께 사용하면 열에 결측치가 몇개인지 표로 출력

df %>% filter( !is.na(column1)
& !is.na(column2))
##'!' 를 사용했기 때문에 결측치가 아닌 값들을 필터링
na.omit( ) is.na( )는 결측치 변수별로 컨트롤하지만,
na.omit( )는 변수를 지정하지 않고 결측치가 있는
행들을 한번에 제거
na.omit(df_test)
na.rm = mean(), sum() 과 같은 수치 연산 함수에
파라미터로 사용되며,
'na.rm=T' 면, 수치 연산에서 결측치를 제외하고 연산
df %>%
summarise(mean_score
= mean(score, na.rm = T))
< 결측치 대체 >
ifelse( )와 is.na( )를 사용해 결측치를 조건에 맞게 대체할 수 있음 df <-
ifelse(is.na(df$column), 0, df$column)

## df의 column에 결측치가 있다면
0으로 대체됨

< 외부 파일 관련 함수 >
xlsx / csv / rds

.xlsx 
install.package("readxl")

library(readxl)
엑셀파일을 읽는 패키지는 내장패키지가 아니기 때문에 패키지 설치 과정이 필요함 -
read_excel( ) 엑셀파일을 불러와 데이터프레임으로 만듬
괄호안에는 파일명이나
파일의 디렉토리를 넣는다.
df <- read_excel("excel_test.xlsx")
df <- read_excel
("C:\\Users\\June\\Desktop\\excel_test.xlsx")
col_names =  불러온 엑셀파일의 첫번째 행을
변수로 인식할 것인지(T)
데이터로 인식할 것인지(F)
설정하는 파라미터
df <- read_excel("excel.xlsx",
col_name = F)
sheet = 엑셀 파일의 몇번째 시트에 있는 정보를
불러 올 것인지 지정하는 파라미터
df <- read_excel("excel.xlsx",
sheet =3)
.csv
read.csv( ) csv파일을 불러와 데이터 프레임으로 만듬
괄호안에는 파일명이나
파일의 디렉토리를 넣는다.
df <- read.csv("CSV.csv")
df <- read_csv
("C:\\Users\\June\\Desktop\\CSV.csv")
header =  불러온 csv파일의 첫번째 행을
변수로 인식할 것인지(T)
데이터로 인식할 것인지(F)
설정하는 파라미터
df <- read_csv("CSV.csv", header = T)
stringsAsFactors = 문자가 들어 있는 csv파일을 불러올 때 사용(F) df <- read.csv("CSV.csv",
stringsAsFactors = F)
write.csv
(데이터 프레임명,
file = "파일명" )
데이터 프레임을 CSV파일로 저장
file은 함수 write.csv( )의 파라미터
wirte.csv(df_test,
file="df_test.csv")
rds
readRDS( )
RDS파일을 불러와 데이터프레임을 만듬
괄호안에는 파일명이나
파일의 디렉토리를 넣는다.
df <- readRDS("RDS.rds")
df <- readRDS
("C:\\Users\\June\\Desktop\\RDS.rds")
saveRDS
(데이터 프레임명,
file = "파일명" )
데이터 프레임을 RDS파일로 저장
file은 함수 write.csv( )의 파라미터
saveRDS(df_test,
file="df_test.csv")

 

 


 

728x90

+ Recent posts