티스토리 뷰
1. 벡터(Vector)
명목데이터를 저장하며, 값의 순서가 있는 형식으로 모두 같은 형식(Type)으로 되어야 한다.
벡터의 항목(element)으로 사용할 수 있는 데이터 형식은 integer, double, character, logical, NULL, NA 가 있다.
1) 벡터의 기본 사용
# CREATE VECTOR
name = c("John Doe", "Jane Doe", "Steve Graves")
temperature = c(98.1, 98.6, 101.4)
status = c(FALSE, FALSE, TRUE)
# 항목의 타입 확인
typeof(name)
# DISPLAY VECTOR
name
name[2]
name[2:3]
name[-2]
name[-2:-3]
name[c(TRUE, TRUE, FALSE)]
# DISPLAY VECTOR
name # 전체 출력
name[2] # 두번째 항목 출력
name[2:3] # 두번째에서 3번째까지의 항목 출력
name[-2] # 두번째 항목을 제외하고 출력
name[-2:-3] # 두번째에서 3번째까지의 항목을 제외하고 출력
name[c(TRUE, TRUE, FALSE)] # 논리값을 참조하여 출력(지정하지 않으면 TRUE)
# RESULT
# > typeof(name)
# [1] "character"
# > name
# [1] "John Doe" "Jane Doe" "Steve Graves"
# > name[2]
# [1] "Jane Doe"
# > name[2:3]
# [1] "Jane Doe" "Steve Graves"
# > name[-2]
# [1] "John Doe" "Steve Graves"
# > name[-2:-3]
# [1] "John Doe"
> name[c(TRUE, TRUE, FALSE)]
[1] "John Doe" "Jane Doe"
# > name[2:3]
# [1] "PSH" "SSH"
# > name[-2]
# [1] "PDM" "SSH" "NDR"
# > name[-2:-3]
# [1] "PDM" "NDR"
# > name[c(TRUE, TRUE, FALSE)]
# [1] "PDM" "PSH" "NDR"
2. 펙터(Factor)
범주 변수나 서열 변수만 사용가능한 데이터 형식이다.
문자 벡터를 펙터로 사용할 경우 레이블은 한번만 저장하므로 메모리를 아낄수 있다.
levels 옵션을 통하여 Levels을 지정할 수 있다.
Ordered 옵션을 통하여 순서를 지정하고 크기를 비교할 수 있다.
1) 펙터의 기본사용
# CREATE FACTOR
gender = factor(c("MALE", "FEMALE", "MALE")) # Basic
blood = factor(c("A", "AB", "O") # Levels Define
, levels = c("A", "AB", "B", "O"))
symptoms = factor(c("severe", "mild", "moderate") # Ordered Define
, levels = c("mild", "moderate", "severe")
, ordered = TRUE)
# Display factor
gender
blood
symptoms
symptoms > "moderate"
# Result
# > gender
# [1] MALE FEMALE MALE
# Levels: FEMALE MALE
# > blood
# [1] O AB A
# Levels: A AB B O
# > symptoms
# [1] severe mild moderate
# Levels: mild < moderate < severe
# > symptoms > "moderate"
# [1] TRUE FALSE FALSE
3. 리스트(List)
리스트는 백터와 달리 다양한 타입을 저장할 때 사용 가능한 데이터 형식으로, 데이터베이스에서 Data Row 와 비슷하다.
1) 리스트의 기본 사용
# CREATE LIST
subject = list(FullName = name[1]
, temperature = temperature[1]
, status = status[1]
, gender = gender[1]
, blood = blood[1]
, symptoms = symptoms[1])
# Display List
subject
subject[2]
subject[[2]]
subject$temperature
subject[c("temperature", "status")]
# Result
# > subject
# $FullName
# [1] "John Doe"
# $temperature
# [1] 98.1
# $status
# [1] FALSE
# $gender
# [1] MALE
# Levels: FEMALE MALE
# $blood
# [1] O
# Levels: A AB B O
# $symptoms
# [1] severe
# Levels: mild < moderate < severe
# > subject[2]
# $temperature
# [1] 98.1
# > subject[[2]]
# [1] 98.1
# > subject$temperature
# [1] 98.1
# > subject[c("temperature", "status")]
# $temperature
# [1] 98.1
# $status
# [1] FALSE
4. 데이터 프레임(Data Frame)
데이터 프레임은 데이터베이스의 테이블과 같은 구조이다.
1) 데이터 프레임의 기본 사용
# CREATE DATA FRAME
dFrame = data.frame(name
, temperature
, status
, gender
, blood
, symptoms
, stringsAsFactors = FALSE)
# Display Data Frame
dFrame
dFrame$name
dFrame[c("temperature", "status")]
dFrame[1,2]
dFrame[c(1,3), c(2, 4)]
dFrame[,1]
dFrame[1,]
dFrame[,]
dFrame[c(1,3), c("temperature", "gender")]
dFrame[-2, c(-1, -3, -5, -6)]
# Result
# > dFrame
# name temperature status gender blood symptoms
# 1 John Doe 98.1 FALSE MALE O severe
# 2 Jane Doe 98.6 FALSE FEMALE AB mild
# 3 Steve Graves 101.4 TRUE MALE A moderate
# > dFrame$name
# [1] "John Doe" "Jane Doe" "Steve Graves"
# > dFrame[c("temperature", "status")]
# temperature status
# 1 98.1 FALSE
# 2 98.6 FALSE
# 3 101.4 TRUE
# > dFrame[1,2]
# [1] 98.1
# > dFrame[c(1,3), c(2, 4)]
# temperature gender
# 1 98.1 MALE
# 3 101.4 MALE
# > dFrame[,1]
# [1] "John Doe" "Jane Doe" "Steve Graves"
# > dFrame[1,]
# name temperature status gender blood symptoms
# 1 John Doe 98.1 FALSE MALE O severe
# > dFrame
# name temperature status gender blood symptoms
# 1 John Doe 98.1 FALSE MALE O severe
# 2 Jane Doe 98.6 FALSE FEMALE AB mild
# 3 Steve Graves 101.4 TRUE MALE A moderate
# > dFrame$name
# [1] "John Doe" "Jane Doe" "Steve Graves"
# > dFrame[c("temperature", "status")]
# temperature status
# 1 98.1 FALSE
# 2 98.6 FALSE
# 3 101.4 TRUE
# > dFrame[1,2]
# [1] 98.1
# > dFrame[c(1,3), c(2, 4)]
# temperature gender
# 1 98.1 MALE
# 3 101.4 MALE
# > dFrame[,1]
# [1] "John Doe" "Jane Doe" "Steve Graves"
# > dFrame[1,]
# name temperature status gender blood symptoms
# 1 John Doe 98.1 FALSE MALE O severe
# > dFrame[,]
# name temperature status gender blood symptoms
# 1 John Doe 98.1 FALSE MALE O severe
# 2 Jane Doe 98.6 FALSE FEMALE AB mild
# 3 Steve Graves 101.4 TRUE MALE A moderate
# > dFrame[c(1,3), c("temperature", "gender")]
# temperature gender
# 1 98.1 MALE
# 3 101.4 MALE
# > dFrame[-2, c(-1, -3, -5, -6)]
# temperature gender
# 1 98.1 MALE
# 3 101.4 MALE
# Add Column
dFrame$temp_c = (dFrame$temperature - 32) * (5 / 9)
# Display Data Frame
# > dFrame
# name temperature status gender blood symptoms temp_c
# 1 John Doe 98.1 FALSE MALE O severe 36.72222
# 2 Jane Doe 98.6 FALSE FEMALE AB mild 37.00000
# 3 Steve Graves 101.4 TRUE MALE A moderate 38.55556
5. 배열(Array) or 행렬(Matrix)
데이터의 행과 열을 갖는 2차원의 표를 구성하는 데이터 구조로 수학 연산에서 가장 자주 사용되며, 수치 데이터만 저장
# Create Matrix
m1 = matrix(c(1,2,3,4), nrow=2 )
m2 = matrix(c(1,2,3,4), nrow=2, byrow=TRUE)
m3 = matrix(c(1,2,3,4,5,6), nrow=2)
m4 = matrix(c(1,2,3,4,5,6), ncol=2)
# Display Matrix
m1
m2
m3
m4[1,]
m4[,1]
# Result
# > m1
# [,1] [,2]
# [1,] 1 3
# [2,] 2 4
# > m2
# [,1] [,2]
# [1,] 1 2
# [2,] 3 4
# > m3
# [,1] [,2] [,3]
# [1,] 1 3 5
# [2,] 2 4 6
# > m4
# [,1] [,2]
# [1,] 1 4
# [2,] 2 5
# [3,] 3 6
# > m4[1,]
# [1] 1 4
# > m4[,1]
# [1] 1 2 3
'R Language' 카테고리의 다른 글
[R] 5. 회귀분석 (0) | 2020.04.22 |
---|---|
[R] 4. 행렬 기초 이론 (0) | 2020.04.19 |
[R] 3. R을 이용한 데이터 관리 (0) | 2020.03.31 |
[R] 1. R Program Install (0) | 2020.03.29 |
댓글