티스토리 뷰

1. 프로그래밍의 이해

  • 프로그래밍이란?
    • 목적을 달성하기 위해 알고리즘( 문제 해결을 위한 일련의 절차 또는 방법 )을 프로그램으로 작성하는 과정
  • 프로그래밍의 절차
    • 프로그램 작성 방법 결정
    • 코딩
    • 에러 수정

2. 프로그래밍의 기본 요소

  • 주요 명령문 ( 제어문 )
    • 반복문
    • 조건문
    • 분기문
  • R 프로그래밍은 다음과 같은 기본 요소를 토대로 이루어짐
    • 함수
    • 연산자

3. 산술 연산자

  • 덧셈 연산자 : +
# 일반적인 숫자의 덧셈
> 1+2 
[1] 3

# 값을 변수에 할당한 후에 덧셈
> x<-1 
> y<-2
> x+y
[1] 3

> v1<-c(1,2) # 벡터 v1을 정의
> v2<-c(3,4) # 벡터 v2를 정의
> v1+v2 # 벡터의 덧셈
[1] 4 6

> A<-matrix(c(1,2,3,4), ncol=2) # 행렬 A를 정의
> B<-matrix(c(3,4,5,6), ncol=2) # 행렬 B를 정의
> A+B # 행렬의 덧셈
[,1] [,2]
[1,] 4 8
[2,] 6 10
  • 뺄셈 연산자 : -
> 3-2
[1] 1

> x<-3
> y<-2
> x-y
[1] 1

> v1<-c(3,4) # 벡터 v1을 정의
> v2<-c(2,1) # 벡터 v2를 정의
> v1-v2 # 벡터의 뺄셈
[1] 1 3

> A<-matrix(c(1,2,3,4), ncol=2) # 행렬 A를 정의
> B<-matrix(c(3,4,5,6), ncol=2) # 행렬 B를 정의
> B-A # 행렬의 뺄셈
[,1] [,2]
[1,] 2 2
[2,] 2 2
  • 곱셈 연산자 : *
> 2*5
[1] 10

> x<-4
> y<-3
> x*y
[1] 12

> v1<-c(2,3) # 벡터 v1을 정의
> v2<-c(4,5) # 벡터 v2를 정의
> v1*v2 # 곱셈연산자 *에 의한 곱셈은 각 벡터의 동일 위치 원소 간의 곱
[1] 8 15

> A<-matrix(c(1,2,3,4), ncol=2) # 행렬 A를 정의
> B<-matrix(c(3,4,5,6), ncol=2) # 행렬 B를 정의
> A*B # 곱셈연산자 *에 의한 곱셈은 각 행렬의 동일 위치 원소 간의 곱
[,1] [,2]
[1,] 3 15
[2,] 8 24
  • 나눗셈 연산자 : /
> 10/5
[1] 2

> x<-4
> y<-2
> x/y
[1] 2

> v1<-c(6,4) # 벡터 v1을 정의
> v2<-c(2,2) # 벡터 v2를 정의
> v1/v2 # 각 벡터의 동일 위치 원소 간의 나눗셈
[1] 3 2

> A<-matrix(c(1,2,3,4), ncol=2) # 행렬 A를 정의
> B<-matrix(c(3,4,5,6), ncol=2) # 행렬 B를 정의
> B/A # 각 행렬의 동일 위치 원소 간의 나눗셈
[,1] [,2]
[1,] 3 1.666667
[2,] 2 1.500000
  • 제곱 연산자 : ^
> 2^3 # 일반적인 수치형 자료의 제곱 2의 세 제곱
[1] 8

> A<-matrix(c(1,2,3,4), ncol=2) # 행렬 A를 정의
> B<-matrix(c(2,2,2,2), ncol=2) # 행렬 B를 정의
> A^B # 행렬의 각 원소 간 제곱연산 수행
[,1] [,2]
[1,] 1 9
[2,] 4 16
  • 정수 나눗셈 연산자 : %/%
    • 나눗셈 몫의 정수부분만을 출력
> x<-3
> y<-2
> x%/%y # 정수 나눗셈은 몫의 정수부분만을 출력
[1] 1 # 나눗셈 결과는 1.5이지만, 정수값인 1만을 출력

> A<-matrix(c(1,2,3,4), ncol=2) # 행렬 A를 정의
> B<-matrix(c(3,4,5,6), ncol=2) # 행렬 B를 정의
> B%/%A # 행렬의 각 원소간 정수 나눗셈을 실시
[,1] [,2]
[1,] 3 1
[2,] 2 1
  • 행렬의 곱셈 연산자 : %*%
> A<-matrix(c(5,10,2,1), ncol=2)
> B<-matrix(c(3,4,5,6), ncol=2)
# (1,1) 자리는 1행과 1열의 곱의 합
# (1,2) 자리는 1행과 2열의 곱의 합
# (2,1) 자리는 2행과 1열의 곱의 합
# (2,2) 자리는 2행과 2열의 곱의 합
> A%*%B
[,1] [,2]
[1,] 23 37
[2,] 34 56
  • 확인 문제
    1. R에서 아래의 연산을 수행할 경우, 결과 값으로 다음 중 가장 알맞은 것은?
      연산 : > 3 %/% 2
      답 : 1
    2. 다음 R에서 정의되어 있는 연산자에 관한 설명으로 가장 옳지 않은 것은?
      ① * : 벡터에 적용할 경우 각 벡터의 동일 위치 원소 간 곱을 계산
      ② / : 벡터에 적용할 경우 각 벡터의 동일 위치 원소 간 나눗셈을 수행
      ③ %*% : 행렬에 적용할 경우 수학적 정의에 따른 행렬의 곱을 계산
      ④ %/% : 행렬에 적용할 경우 수학적 정의에 따른 역행렬을 산출 → solve 함수
      답 : 4번

4. 비교 연산자 / 논리 연산자

  • 비교 연산자
    • 대상이 되는 두 객체를 비교하여 비교의 결과가 참인지 거짓인지를 밝히는 연산을 수행하며 결과값으로 논리값을 출력
    • 사용법
      • ==
        • 비교되는 두 항이 같은지를 비교. 같을 경우 TRUE, 다를 경우 FALSE
      • !=
        • 비교되는 두 항이 다른지를 비교. 같을 경우 FALSE, 다를 경우 TRUE
      • <=
        • 왼쪽 항이 오른쪽 항보다 작거나 같은지를 판단. 작거나 같으면 TRUE, 크면 FALSE
      • <
        • 왼쪽 항이 오른쪽 항보다 작은지 판단. 작으면 TRUE, 크면 FALSE
      • =
        • 왼쪽 항이 오른쪽 항보다 크거나 같은지를 판단. 크거나 같으면 TRUE, 작으면 FALSE
      • >
        • 왼쪽 항이 오른쪽 항보다 큰지 판단. 크면 TRUE, 작으면 FALSE
  • 논리 연산자
    • 논리값을 결합하여 논리 구조를 설정하는 연산을 수행
    • 사용법
      • &&, &
        • &&는 일반적인 and 논리 연산자이고 &는 벡터에서의 and 논리 연산자
        • 단일 비교에서는 &&를 사용하고, 복수 비교에서는 &를 사용
      • ||, |
        • ||는 일반적인 or 논리 연산자이고 |는 벡터에서의 or 논리 연산자
        • 단일 비교에서는 ||를 사용하고, 복수 비교에서는 |를 사용
    • 주의점
      • &&, || 연산자의 경우 일반적인 논리 연산자이므로 벡터에 사용할 경우 결과는 출력되지만, 원하는 결과를 얻을 수 없다는 것
      • 벡터에 and나 or 논리연산자를 적용할 때에는 &나 |로 사용하고 벡터의 각 원소 위치별로 연산을 수행한다는 것을 꼭 기억할 필요
  • 확인 문제
    1. R에서 아래의 연산을 수행할 경우, 결과 값으로 다음 중 가장 알맞은 것은?
      연산 : > "a"=="a" & c(“b"==“b", 2>4)
      답 : [1] TRUE FALSE

5. 집합 연산자

  • 벡터를 원소들로 이루어진 집합으로 볼 때, 수학적인 정의에 따른 다양한 집합연산을 실시할 수 있음
  • union과 intersect
    • union(x,y)는 집합 x와 y의 합집합
    • intersect(x,y)는 집합 x와 y의 교집합
  • setdiff와 setequal
    • setdiff(x,y)는 집합 x와 y의 차집합
    • setequal(x,y)는 집합 x와 집합 y가 같은지 여부 판단
  • %in%와 choose(n,k)
    • c%in%x는 원소 c가 집합 x에 속하는지 판단
    • choose(n,k)는 n개의 원소로 이루어진 집합에서 추출 가능한 k개의 원소로 이루어진 부분집합의 수를 계산
  • 연습 문제
    1. 다음 집합연산자에 관한 설명 중 가장 옳지 않은 것은?
      ① union(x,y)는 집합 x와 y의 합집합을 구하는 연산자이다.
      ② intersect(x,y)는 집합 x와 y의 교집합을 산출하는 연산자이다.
      ③ setdiff(x,y)와 setdiff(y,x)는 동일한 결과를 산출한다.
      ④ setequal(x,y)는 집합 x와 집합 y가 같은지 여부를 판단한다.
      답 : 3번
728x90

'방송대 > R 컴퓨팅' 카테고리의 다른 글

8강. R 함수 만들기  (0) 2025.04.11
7강. R 프로그래밍의 기초 (2)  (0) 2025.04.11
5강. 데이터 구조 (2)  (0) 2025.03.23
4강. 데이터 구조 (1)  (0) 2025.03.15
3강. 데이터 입력과 저장  (0) 2025.03.09
댓글
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
최근에 올라온 글
Total
Today
Yesterday
공지사항