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 |