[1] 데이터형
1. 데이터형(Data Types)
- R에서 기본으로 지원하는 데이터형
<데이터형 종류>
- 논리형(Logical)
> TRUE(참), FALSE(거짓)의 값을 가짐
# 논리 데이터형 테스트
> TRUE -> 1
> class(1)
[1] "logical"
- 숫자형(Numeric)
> 실수를 표현하기 위한 데이터형
# 숫자 데이터형 테스트
> 3.1415 -> n
> class(n)
[1] "numeric"
- 정수형(Integer)
> 소수점이 없는 정수를 표현
# 정수 데이터형 테스트
> 1147L -> i
> class(i)
[1] "integer"
- 복소수형(Complex)
> 복소수를 표현하고자 할 때 사용
# 복소수 데이터형 테스트
> 3+5i -> c
> class(c)
[1] "complex"
- 문자형(Character)
> 문자 또는 문자열을 표현할 때 사용
# 문자 데이터형 테스트
> "hello" -> s
> class(s)
[1] "character"
- 원형(Raw)
> 컴퓨터 시스템에서 표현하는 기본 형태
# 원형 데이터형 테스트
> charToRaw("hello") -> r
> r
[1] 68 65 6c 6c 6f
[2] R객체
1. R객체(R-Object)
- R에서 지원하는 특수한 형태의 객체(object)
<R객체>
- 벡터(Vectors)
> 다수의 값을 담고 있는 R객체
> 내부 데이터는 한 가지 데이터형으로 통일
# 벡터 R객체 테스트
> c("hello", 3.14) -> v # 문자형과 숫자형 혼용
> class(v)
[1] "character" # 문자형으로 변화
> v
[1] "hello" "3.14"
- 리스트(List)
> 서로 다른 유형의 데이터를 담을 수 있는 R객체
# 리스트 R객체 테스트
> list("hello", 3.14) -> l # 문자형과 숫자형 혼용
> class(l)
[1] "list" # 리스트형으로 취급
> v
[[1]]
[1] "hello"
[[2]]
[1] "3.14"
- 행렬(Matrices)
> 행과 열로 이루어진 2차원 데이터 집합
# 행렬 R객체 테스트
> matrix(c(2, 3, 1, 5), nrow=2, ncol=2) -> m
> class(m)
[1] "matrix"
> m
[,1] [,2]
[1,] 2 1
[2,] 3 5
- 배열(Arrays)
> 다차원으로 구성된 데이터 집합
- 차원의 설정에 따른 배열의 변화
> 1차원으로 설정 → 배열(Arrays)로 취급
> 2차원으로 설정 → 행렬(Matrix)로 취급
> 3차원 이상으로 설정 → 배열(Arrays)로 취급
# 배열 R객체 테스트
> array(c(2, 3, 1, 5), dim=c(4)) -> ar1
> array(c(2, 3, 1, 5), dim=c(2, 2)) -> ar2
> array(c(2, 3, 1, 5), dim=c(1, 2, 2)) -> ar3
> class(ar1)
[1] "array"
> class(ar2)
[1] "matrix"
> class(ar3)
[1] "array"
> ar1
[1] 2 3 1 5
> ar2
[,1] [,2]
[1,] 2 1
[2,] 3 5
> ar3
, , 1
[,1] [,2]
[1,] 2 3
, , 2
[,1] [,2]
[1,] 1 5
- 요인(Factors)
> "범주"라고도 부름
> 데이터의 값(Value)과 레벨(Level)을 함께 표현
> 객체가 구축되며 데이터가 자동으로 분석되므로 통계적 모델링과 분석에 유용
# 요인 R객체 테스트
> c("kim", "kim", "han", "lee", "lee", "kim") -> v
> factor(v) -> vf
> vf
[1] kim kim han lee lee kim
Levels : han kim lee
> class(vf)
[1] "factor"
- 데이터 프레임(Data Frames)
> 표의 형태로 정리된 데이터 객체의 일종
> 열(Column)과 행(Row)의 이름(Name)을 지정 가능
> 열마다 서로 다른 데이터형을 가질 수 있음
> 숫자형(Numeric), 요인(Factor), 문자형(Character) 외의 다른 데이터를 저장할 수 없음
> 열마다 같은 수의 데이터를 포함하여야 함
# 데이터 프레임 요약 예시
> summary(df)
gender height weight age
female : 2 Min. :159.0 Min. :49 Min. :25.00
male : 1 1st Qu.:161.0 1st Qu.:51 1st Qu.:30.50
Median :163.0 Median :53 Median :36.00
Mean :166.7 Mean :65 Mean :40.33
3rd Qu.:170.5 3rd Qu.:73 3rd Qu.:48.00
Max. :178.0 Max. :93 Max. :60.00
[2] 연산자
1. 산술 연산자(Arithmetic Operators)
| 연산자 | 사용법 | 연산자의 반환 결과 |
|--------|--------|--------------------|
| + | a + b | 덧셈을 수행한 후 결과 반환 |
| - | a - b | 뺄셈을 수행한 후 결과 반환 |
| * | a * b | 곱셈을 수행한 후 결과 반환 |
| / | a / b | 나눗셈을 수행한 후 결과 반환 |
| %% | a %% b | 나눗셈을 수행한 후 나머지 반환 |
| %/% | a %/% b | 나눗셈을 수행한 후 몫 반환 |
| ^ | a ^ b | a의 b승을 계산 |
# 산술 연산자 예시
> 7+3
[1] 10
> 7-3
[1] 4
> 7*3
[1] 21
> 7/3
[1] 2.333333
> 7%%3
[1] 1
> 7%/%3
[1] 2
> 7^3
[1] 343
> c(6, 7) -> a
> c(4, 3) -> b
> a+b
[1] 10 10
> a-b
[1] 2 4
> a*b
[1] 24 21
> a/b
[1] 1.500000 2.333333
> a%%b
[1] 2 1
> a%/%b
[1] 1 2
> a^b
[1] 1296 343
2. 관계 연산자(Relational Operators)
| 연산자 | 사용법 | 연산자의 반환 결과가 TRUE |
|--------|----------|--------------------------|
| > | a > b | a가 b보다 큰 경우 |
| >= | a >= b | a가 b보다 크거나 같은 경우 |
| < | a < b | a가 b보다 작은 경우 |
| <= | a <= b | a가 b보다 작거나 같은 경우 |
| == | a == b | a와 b의 값이 서로 같은 경우 |
| != | a != b | a와 b의 값이 서로 다른 경우 |
# 관계 연산자 예시
> c(2, 3, 4) -> a
> c(3, 3, 3) -> b
> a > b
[1] FALSE FALSE TRUE
> a >= b
[1] FALSE TRUE TRUE
> a < b
[1] TRUE FALSE FALSE
> a <= b
[1] TRUE TRUE FALSE
> a == b
[1] FALSE TRUE FALSE
> a != b
[1] TRUE FALSE TRUE
3. 논리 연산자(Logical Operators)
| 연산자 | 사용법 | 연산자의 반환 결과 |
|--------|--------|--------------------|
| & | a & b | a와 b의 각 성분별로 AND 연산 결과 |
| | | a | b | a와 b의 각 성분별로 OR 연산 결과 |
| ! | !a | a의 논리 결과를 반대로 반환 (NOT) |
| && | a && b | a와 b의 첫번째 원소에 대해 AND 연산 결과 |
| || | a || b | a와 b의 첫번째 원소에 대해 OR 연산 결과 |
# 논리 연산자 예시
> a <- c(TRUE, FALSE, FALSE)
> b <- c(TRUE, TRUE, FALSE)
> a & b
[1] TRUE FALSE FALSE
> a | b
[1] TRUE TRUE FALSE
> !a
[1] FALSE TRUE TRUE
> a && b
[1] TRUE
> a || b
[1] TRUE
4. 대입(할당) 연산자(Assignment Operators)
| 연산자 | 사용법 | 연산자의 반환 결과 |
|--------|--------|--------------------|
| <- | a <- b | b의 값을 a에 대입(할당) |
| = | a = b | a에 b를 대입(할당) |
| <<- | a <<- b | (환경에 따라 값 전달) |
| -> | a -> b | a의 값을 b에 대입(할당) |
| ->> | a ->> b | (환경에 따라 값 전달) |
# 대입 연산자 예시
> a <- 3
> a = 3
> a <<- 3
> a -> 3
Error in 3 <- a : invalid (do_set) left-hand side to assignment
> 3 -> a
> 3 ->> a
5. 기타 연산자(Miscellaneous Operators)
| 연산자 | 사용법 | 연산자의 반환 결과 |
|--------|--------|--------------------|
| : | a : b | 시작값은 a이고 끝값은 b보다 작거나 같은 벡터를 생성 |
| %in% | a %in% b | a가 b의 성분인 경우 TRUE, 그렇지 않으면 FALSE |
| %*% | a %*% b | a와 b가 행렬일 때, 행렬 간 곱셈 수행 |
# 기타 연산자 예시
> 3:8
[1] 3 4 5 6 7 8
> "pizza"%in%c("pizza","hamburger")
[1] TRUE
> "cheese"%in%c("pizza","hamburger")
[1] FALSE
> a <- matrix(c(1,2,3,4), nrow=2, ncol=2)
> b <- matrix(c(4,3,2,1), nrow=2, ncol=2)
> a*b
[,1] [,2]
[1,] 4 6
[2,] 6 4
> a %*% b
[,1] [,2]
[1,] 13 5
[2,] 20 8
'Hello World > 빅데이터전문가' 카테고리의 다른 글
| 7차시 (데이터 통계 분석 (1)) (0) | 2025.10.08 |
|---|---|
| 6차시 (빅데이터 분석 도구 R (3)) (0) | 2025.10.06 |
| 4차시 (빅데이터 분석 도구 R (1)) (0) | 2025.09.27 |
| 3차시 (빅데이터 저장소) (0) | 2025.09.22 |
| 2차시 (빅데이터의 수집) (0) | 2025.09.20 |