Hello World/빅데이터전문가

5차시 (빅데이터 분석 도구 R (2))

혼복필 2025. 9. 30. 12:40
728x90
SMALL

[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

728x90
LIST