R스튜디오에서 패키지를 설치/로드/사용, 데이터 프레임의 구성
그리고 자주쓰이는 기본적인 함수를 정리한 글입니다.
누군가에게 도움이 되었으면 좋겠습니다.
목차
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") |
'# Programming Language > R' 카테고리의 다른 글
[Data Analysis] R 패키지_ggplot2/dplyr (0) | 2021.03.21 |
---|---|
[Data Analysis] R 이상치 정제_이상치/극단치/boxplot (0) | 2021.02.18 |
[Data Analysis] R 스튜디오 UI구성 / 환경설정 (0) | 2021.02.11 |
[Data Analysis] RStudio 설치 (0) | 2021.02.03 |
[Data Analysis] R 설치 (0) | 2021.02.03 |