[R] 연습

[R] 기초 문법 2

Simon Yoon 2022. 1. 13. 22:50

 

2022.01.09 - [[R] 연습] - [R] 기초 문법 1

지난 포스팅에 이어서 R의 기본적인 문법을 계속해서 정리해볼 것이다.

 

리스트(list)

리스트의 형태는 (키, 값) 형태로 list(key = value, key = value, ...)로 작성

# 리스트 생성 예시
list(name = c("simon", "micheal", "kyle"),
     height = c(180, 176, 169)
     
# $name
# [1] "simon"   "micheal" "kyle"   

# $height
# [1] 180 176 169

추가로, 리스트 안에 리스트를 중첩으로 작성할 수도 있다.

 

행렬(Matrix)

행렬은 행과 열로 구성되어 있다. 벡터와 마찬가지로 한 가지 유형의 스칼라만 저장할 수 있다.

matrix(data, nrow, ncol, byrow(TRUE면 행 기준, FASLE면 열 기준), dimnames)로 작성

matrix(c(1:12), nrow = 3, byrow = TRUE,
       dimnames = list(c("row1", "row2", "row3"),
                       c("col1", "col2", "col3", "col4")))

#      col1 col2 col3 col4
# row1    1    2    3    4
# row2    5    6    7    8
# row3    9   10   11   12

 

행렬 관련 함수

함수 설명
dim(x) 차원 확인
dim(x) <- c(m, n) m x n 행렬로 변환
nrow(x) 행의 수 확인
ncol(x) 열의 수 확인
x[m, n] m행 n열의 원소 추출
x[m, ] m행
x[, n] n열
rownames(x) 행 이름 출력
colnames(x) 열 이름 출력
t(x) 전치행렬
solve(x) 역행렬

 

행렬 연산

# 연산에 사용할 행렬 생성
mat1 <- matrix(c(1:9), nrow = 3, ncol = 3, byrow = TRUE)
mat2 <- matrix(c(10:18), nrow = 3)
mat1
#      [,1] [,2] [,3]
# [1,]    1    2    3
# [2,]    4    5    6
# [3,]    7    8    9
mat2
#      [,1] [,2] [,3]
# [1,]   10   13   16
# [2,]   11   14   17
# [3,]   12   15   18

# 두 행렬 더하기
mat1 + mat2
#      [,1] [,2] [,3]
# [1,]   11   15   19
# [2,]   15   19   23
# [3,]   19   23   27

# 두 행렬 곱하기(각 원소 곱셈)
mat1 * mat2
#      [,1] [,2] [,3]
# [1,]   10   26   48
# [2,]   44   70  102
# [3,]   84  120  162

# 두 행렬 곱하기(행렬의 곱셈)
mat1 %*% mat2
#      [,1] [,2] [,3]
# [1,]   68   86  104
# [2,]  167  212  257
# [3,]  266  338  410

# 전치행렬
t(mat1)
#      [,1] [,2] [,3]
# [1,]    1    4    7
# [2,]    2    5    8
# [3,]    3    6    9

 

데이터프레임(data frame)

데이터프레임은 열과 행의 표 형식 구조로 다양한 종류의 데이터 저장이 가능

data.frame(col1 = vec1, col2 = vec2, ...)로 생성

# 데이터프레임 생성 예시
employee_data <- data.frame(
  employee_id = c (1:5),
  employee_name = c("James","Harry","Young","Yuna","Oliver"),
  salary = c(642.3,535.2,681.0,719.0,825.26),
  join_date = as.Date(c("2017-02-04", "2018-06-21", "2017-11-14", "2015-05-19","2014-03-25")),
  stringsAsFactors = FALSE)

employee_data
#   employee_id employee_name salary  join_date
# 1           1         James 642.30 2017-02-04
# 2           2         Harry 535.20 2018-06-21
# 3           3         Young 681.00 2017-11-14
# 4           4          Yuna 719.00 2015-05-19
# 5           5        Oliver 825.26 2014-03-25

 

배열(array)

배열을 3차원 또는 n차원까지 확장된 형태의 다차원 데이터

array(data, dim, dimnames)으로 생성

arr1 <- array(c(1:18),dim=c(2,3,3))
arr1
# , , 1

#      [,1] [,2] [,3]
# [1,]    1    3    5
# [2,]    2    4    6

# , , 2

#      [,1] [,2] [,3]
# [1,]    7    9   11
# [2,]    8   10   12

# , , 3

#      [,1] [,2] [,3]
# [1,]   13   15   17
# [2,]   14   16   18

'[R] 연습' 카테고리의 다른 글

[R] 기초 문법 4  (0) 2022.01.16
[R] 기초 문법 3  (0) 2022.01.15
[R] 기초 문법 1  (0) 2022.01.09
[R] 군집분석(k-means clustering편)  (0) 2021.12.26
[R] 차원축소(MDS편)  (0) 2021.12.19