Search

R 프로그래밍

과정
R프로그래밍을 사용한 데이터 분석
날짜
2024/03/20

실습에 사용한 페이지

프로그래밍 기본

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()는 데이터 프레임을 미리 보는 것이 아니라 변경할 수 있는 함수입니다.

데이터 가져오기

데이터 가져오기 설명 파일
1049.0KB