실습에 사용한 페이지
프로그래밍 기본
•
R 에서 인수는 함수가 실행해야 하는 정보입니다.
•
R 에서 변수 이름은 숫자 또는 밑줄로 시작하면 안됩니다.
•
파이프
◦
연속적인 여러 연산을 나타냅니다.
◦
%>% 로 표기 됩니다.
R 의 데이터 구조
벡터
•
벡터에는 논리형과 수치형 중 하나만 포함할 수 있습니다.
•
다이어그램
벡터 생성과 속성 판정
생성
•
벡터를 생성하는 한 가지 방법은 c() 함수(‘결합’ 함수라고 함)입니다.
◦
c(x, y, z, ...)
•
c() 함수로 정수형 벡터를 생성하려면 각 숫자 바로 뒤에 'L'을 입력해야 합니다.
◦
c(1L, 5L, 15L)
•
문자 또는 논리가 포함된 벡터를 생성할 수도 있습니다.
◦
c(“Sara” , “Lisa” , “Anna”)
◦
c(TRUE, FALSE, TRUE)
속성 판정
•
생성하는 모든 벡터에는 유형과 길이라는 두 가지 주요 속성이 있습니다.
•
typeof() 함수를 사용하면 어떤 벡터 유형에서 작업 중인지 판정할 수 있습니다.
typeof(c(“a” , “b”))
#> [1] "character"
typeof(c(1L , 3L))
#> [1] "integer"
R
복사
•
length() 함수를 사용하면 기존 벡터의 길이, 즉 포함된 요소의 개수를 판정할 수 있습니다.
x <- c(33.5, 57.75, 120.05)
length(x)
#> [1] 3
R
복사
•
is 함수를 사용하면 벡터가 특정 유형인지 확인할 수도 있습니다.
x <- c(2L, 5L, 11L)
is.integer(x)
#> [1] TRUE
y <- c(TRUE, TRUE, FALSE)
is.character(y)
#> [1] FALSE
R
복사
◦
is.logical(), is.double(), is.integer(), is.character()
벡터 명명
모든 유형의 벡터는 명명할 수 있습니다. R에서 이름은 코드의 가독성을 높이고 객체를 설명하는 데 도움이 됩니다. names() 함수로 벡터의 요소를 명명할 수 있습니다.
x <- c(1, 3, 5)
names(x) <- c("a", "b", "c")
x
#> a b c
#> 1 3 5
R
복사
종류
상수 벡터
형 | 설명 | 예 |
논리형 | 참/거짓 | TRUE |
정수형 | 양의 정수 및 음의 정수 | 3 |
실수형 | 소수점 값 | 101.175 |
문자형 | 문자열/문자 값 | “Coding” |
리스트
•
리스트는 날짜, 데이터 프레임, 벡터, 행렬 등 어떤 유형이든 요소로 포함할 수 있다는 점에서 상수 벡터와 다릅니다. 리스트에 다른 리스트를 포함할 수도 있습니다.
•
list() 함수를 사용하여 생성합니다.
•
str() 함수를 사용하면 리스트에 포함된 요소 유형을 알아낼 수 있습니다.
z <- list(list(list(1 , 3, 5)))
str(z)
#> List of 1
#> $ :List of 1
#> ..$ :List of 3
#> .. ..$ : num 1
#> .. ..$ : num 3
#> .. ..$ : num 5
R
복사
•
리스트 명명
list('Chicago' = 1, 'New York' = 2, 'Los Angeles' = 3)
$Chicago
[1] 1
$`New York`
[1] 2
$`Los Angeles`
[1] 3
R
복사
R 의 날짜 및 시간
패키지 로드
install.packages("tidyverse")
library(tidyverse)
library(lubridate)
R
복사
함수
# 현재 날짜 - 연, 월, 일
today()
# 현재 날짜/시간
now()
# 포맷 변환 - 전부 똑같이 yyyy-mm-dd 형식으로 변환합니다.
ymd("2021-01-20")
mdy("January 20th, 2021")
dmy("20-Jan-2021")
ymd(20210120)
# 날짜/시간 구성요소 생성
ymd_hms("2021-01-20 20:11:59")
#> [1] "2021-01-20 20:11:59 UTC"
mdy_hm("01/20/2021 08:01")
#> [1] "2021-01-20 08:01:00 UTC"
# 기존 날짜/시간 객체 간 전환
as_date(now())
#> [1] "2021-01-20"
R
복사
데이터 프레임
•
data.frame() 함수를 사용하면 R에서 직접 데이터 프레임을 생성할 수 있습니다.
data.frame(x = c(1, 2, 3) , y = c(1.5, 5.5, 7.5))
x y
1 1 1.5
2 2 5.5
3 3 7.5
R
복사
•
대개 .csv 파일, 관계형 데이터베이스, 소프트웨어 프로그램 등 다른 소스에서 데이터를 가져옵니다.
•
head() 를 사용하여 데이터 프레임의 첫 6 행을 미리 볼 수 있습니다.
Tribble
•
데이터의 첫 10행만 미리 보도록 자동 설정되어 있습니다.
•
화면에 들어갈 수 있는 만큼의 열만 미리 보도록 자동 설정되어 있습니다.
파일
# 파일을 저장할 새 폴더 혹은 디렉토리 생성
dir.create ("destination_folder")
# 빈 파일 생성 - 파일이 생성되면 TURE 를 반환 합니다.
file.create (“new_text_file.txt”)
file.create (“new_word_file.docx”)
file.create (“new_csv_file.csv”)
# 파일 복사
file.copy (“new_text_file.txt” , “destination_folder”)
# 파일 삭제
unlink (“some_.file.csv”)
R
복사
행렬
# 행렬 생성
matrix()
# 행렬 차원 추가
matrix(c(3:8), nrow = 2)
[,1] [,2] [,3]
[1,] 3 5 7
[2,] 4 6 8
matrix(c(3:8), ncol = 2)
[,1] [,2]
[1,] 3 6
[2,] 4 7
[3,] 5 8
R
복사
연산자
산술 연산자
연산자 | 설명 | 예시 코드 | 결과/출력값 |
+ | 덧셈 | x + y | [1] 7 |
- | 뺄셈 | x - y | [1] -3 |
* | 곱셈 | x * y | [1] 10 |
/ | 나눗셈 | x / y | [1] 0.4 |
%% | 나머지(나눗셈 후 나머지 반환) | y %% x | [1] 1 |
%/% | 정수 나눗셈(나눗셈 후 정숫값 반환) | y%/% x | [1] 2 |
^ | 지수 | y ^ x | [1]25 |
관계 연산자
연산자 | 설명 | 예시 코드 | 결과/출력값 |
< | (왼쪽이 오른쪽보다) 작다 | x < y | [1] TRUE |
> | (왼쪽이 오른쪽보다) 크다 | x > y | [1] FALSE |
<= | (왼쪽이 오른쪽보다) 작거나 같다 | x < = 2 | [1] TRUE |
>= | (왼쪽이 오른쪽보다) 크거나 같다 | y >= 10 | [1] FALSE |
== | 같다 | y == 5 | [1] TRUE |
!= | 같지 않다 | x != 2 | [1] FALSE |
논리 연산자
연산자 | 설명 |
& | 요소별 논리 AND |
&& | 논리 AND |
| | 요소별 논리 OR |
|| | 논리 OR |
! | 논리 NOT |
대입 연산자
연산자 | 설명 | 예시 코드(아래의 샘플 코드를 실행한 후 x를 입력하면 오른쪽 열의 출력값이 반환됨) | 결과/출력값 |
<- | 왼쪽으로 대입 | x <- 2 | [1] 2 |
<<- | 왼쪽으로 대입 | x <<- 7 | [1] 7 |
= | 왼쪽으로 대입 | x = 9 | [1] 9 |
-> | 오른쪽으로 대입 | 11 -> x | [1] 11 |
->> | 오른쪽으로 대입 | 21 ->> x | [1] 21 |
코드 가독성 높이기
Package
•
installed.packages
Tidyverse
•
tidyverse는 데이터 작업을 위해 특별히 설계된 R 패키지 모음입니다.
•
대다수 데이터 애널리스트들의 표준 라이브러리지만, 패키지만 개별적으로 다운로드할 수도 있습니다.
•
ggplot2, tidyr, dplyr, forcats 패키지는 여덟 가지 핵심 tidyverse 패키지 모음에 해당합니다.
◦
나머지 핵심 패키지는 tibble, readr, purrr, stringr입니다.
ggplot2
•
다양한 시각적 속성을 데이터 변수에 적용하여 여러 데이터 시각화 자료를 생성합니다.
tidyr
•
데이터를 정리하여 타이디 데이터를 만드는데 사용합니다.
•
타이디 데이터(클린 데이터) 는 데이터 테이블이나 데이터 프레임의 모든 요소가 알맞은 유형으로 알맞은 위치에 있는 데이터를 말합니다.
•
가로형 데이터와 세로형 데이터에서 모두 작동합니다.
readr
•
데이터를 가져오는데 사용됩니다.
•
read_csv
◦
CSV 파일을 R 로 가져오는 함수 입니다.
dplyr
•
일반적인 데이터 조작 작업을 완료하는 데 도움이 되는 일관된 함수 세트를 제공합니다.
tibble
•
데이터 프레임에서 작동합니다.
purrr
•
함수와 벡터에서 작동하여 코드를 작성하기 쉬우면서 더 표현력 있게 만듭니다.
stringr
•
문자열 작업을 더 쉽게 해주는 함수들을 포함 합니다.
forcats
•
일반적인 문제 해결을 위한 도구를 제공합니다.
•
범주형 데이터를 저장합니다.
◦
국가, 연도 등 유한한 그룹을 바탕으로 데이터값을 제한합니다.
tidyverse
•
분석을 세세하게 조정할 수 있습니다.
Quick list of useful R packages
•
RStudio Support의 유용한 패키지 목록입니다. 설치 안내와 기능 설명이 포함되어 있습니다.
CRAN Task Views
•
작업별로 분류된 CRAN 패키지 인덱스입니다.
•
흔히 사용되는 R 패키지와 기타 R 리소스의 온라인 아카이브입니다.
•
CRAN에는 여러 패키지가 있지만 그 자체가 패키지 모음은 아닙니다.
•
필요한 작업 유형을 검색하면 해당 작업과 관련된 패키지의 페이지가 표시됩니다.
파이프
•
R 에서 연속적인 여러 연산을 나타내는 도구 입니다.
•
파이프는 문 하나의 출력을 취하여 다음 문의 입력으로 사용합니다.
•
중첩 코드라고 합니다.
◦
특정 함수를 실행하는 코드가 더 포괄적인 함수를 실행하는 코드 안에 포함되어 있는 상태를 말합니다.
•
파이프 연산자는 연산의 각 줄 끝에 추가되어야 합니다.
◦
마지막 연산은 제외입니다.
•
들여쓰기 되지 않으면 파이프에 추가되지 않아 오류가 발생할 수 있습니다.
tibble
•
tibble은 데이터 세트의 첫 10행과 화면에 들어갈 수 있는 만큼의 열만 불러오도록 자동으로 설정된 일종의 간소화된 데이터 프레임입니다.
•
tibble은 데이터 작업을 수월하게 해주지만 일반 데이터 프레임과 약간 다릅니다 .
◦
tibble은 입력된 데이터 유형을 변경하지 않습니다.
◦
문자열을 팩터나 다른 유형으로 변경하지 않습니다.
◦
데이터를 정리하거나 데이터 유형을 변경하는 경우가 적어 시간이 절약됩니다.
◦
tibble은 변수의 이름을 변경하지 않고 행 이름을 생성하지 않습니다.
◦
tibble을 사용하면 R 출력이 더 쉽습니다.
요약함수
R에서 데이터 프레임의 미리보기를 표시하는 데 사용할 수 있는 요약 함수는 head(), glimpse(), str() 함수입니다. head() 함수는 데이터의 열과 첫 몇 행을 반환합니다. mutate()는 데이터 프레임을 미리 보는 것이 아니라 변경할 수 있는 함수입니다.