연산자

  값을 계산하거나, 조작하기위해 사용하는 기호
  산술, 관계(비교), 논리, 할당 연사자 등

산술연산자 
  산술 연산자의 연산 결과는 수치형이 나온다.
  
  연산자       의미        예시
  ====================================
  +         더하기        5 + 8
  -         빼기          5 - 8 
  *         곱하기        5 * 8
  /         나누기        5 / 8
  %/%       몫           8 %/% 5
  %%        나머지        8 %% 5
  ^, **     지수(거듭제곱) 2^3, 2**3

(실습)

cat("덧셈 : ", 5 + 8)
cat("뺄셈 : ", 5 - 8)
cat("곱셈 : ", 5 * 8)
cat("나눗셈 : ", 5 / 8)
cat("몫 : ", 8 %/% 5)
cat("나머지 : ", 8 %% 5)
cat("거듭제곱 : ", 2^3)
cat("거듭제곱 : ", 2**3)

# 다른 자료형의 산술연산
"A" + "B"
"1" + 3
as.numeric("1") + 3
TRUE + TRUE
5 + TRUE


---

관계(비교) 연산자


  >, <, >=, <=, ==, !=
  관계 연산자의 연산결과는 논리형이 나온다(TRUE, FALSE)

  연산자    의미            예시        결과
  =========================================
  ==      같다            3 == 3     TRUE
  !=      같지않다         3 != 3     FALSE
  >       같다(초과)       5 > 2      TRUE
  >=      크거나 같다(이상)  2 >= 5     FALSE
  <       작다(미만)       5 < 5      FALSE
  <=      작거나 같다(이하)  5 <= 5    TRUE


논리 연산자
  논리 연산자의 연산결과는 논리형이 나온다(TRUE, FALSE)

  연산자    의미          예시            키보드입력
  ===============================================
  &      AND(그리고)     조건1&조건2      shift+7
  |      OR(또는)       조건1&조건2      shift+|(역슬러시)
  !      NOT(부정)      !조건1          shift+1

  *&(AND) : 두개의 조건이 모두 TRUE이면 TRUE
            한개라도 FALSE이면 FALSE
  *|(OR)  : 두개의 조건중에 하나라도 TRUE이면 TRUE
            모두 FALSE이면 FALSE
  *!(NOT) : 조건을 반대로 바꾼다(TRUE->FALSE, FALSE->TRUE)

---

(실습)

help() 함수: 도움말 보기
ex) help(print), help(cat)

# 관계연산자 실습 -> 결과는 논리형(TRUE, FALSE) 출력
cat("5 == 3 : ", 5 == 3)
cat("5 != 3 : ", 5 != 3)
cat("5 > 3 : ", 5 > 3)
cat("5 <= 3 : ", 5 <= 3)


# 문자 숫자 대소비교시, 강제형변환
'A' > 1   # TRUE
# 1) character로 변환
'A' > '1' 
# 2) ASCII(문자/숫자/기호 이진코드 표현)로 변환
utf8ToInt("A") # 65
utf8ToInt("1") # 49
'01' > '02'
utf8ToInt("01") # 48 49
utf8ToInt("02") # 48 50

# 숫자와 논리비교 : 논리가 숫자로 자동 형변환(T->1, F->0)
TRUE > 0
FALSE == 0

---

# 논리연산자 실습
num <- 5
#1 < num < 10

# 동시조건 표현 -> 논리연산자 사용

# AND : 둘다 참이여야 참
1 < num & num < 10
num > 1 & num < 10 # 가독성 좀더 좋다.

# OR :둘중에 하나만 만족하면 참
num <= 1 | num >= 10

cat("참 or 참 : ", TRUE | TRUE)     
cat("참 or 거짓 : ", TRUE | FALSE)
cat("거짓 or 거짓 : ", FALSE | FALSE) # 전기가 둘다 흐르지 않는다-> 모두 OFF(FALSE)
cat("참 and 참 : ", TRUE & TRUE)     # 전기가 모두 흐른다 -> 모두 ON(TRUE)
cat("참 and 참 : ", TRUE & FALSE)
cat("거짓 and 거짓 : ", FALSE & FALSE)

---

#숫자와 논리의 연산 : 0은 FALSE, 그외 모든 음수/양수 수치는 TRUE
-0.1 & 1  # TRUE
0 & 1 # FALSE

# not 연산자
!TRUE  # not TRUE
!FALSE # not FALSE


---

# 다음의 결과는?
1 + 2 * 2 
# 1 + (2 * 2)

TRUE | TRUE & FALSE
# TRUE | (TRUE & FALSE)

-연산자 우선순위 확인: ?Syntax

# 필요할때 아래를 참고해서 우선순위 파악
# *중요* 헷갈릴때(모호할때) -> 괄호를 쓰는게 좋은 코드 습관!

:: ::: access variables in a namespace
$ @ component / slot extraction
[ [[ indexing
^ exponentiation (right to left)
- + unary minus and plus
: sequence operator
%any% |> special operators (including %% and %/%)
* / multiply, divide
+ - (binary) add, subtract
< > <= >= == != ordering and comparison
! negation
& && and
| || or
~ as in formulae
-> ->> rightwards assignment
<- <<- assignment (right to left)
= assignment (right to left)
? help (unary and binary)

'프로그래밍 > R' 카테고리의 다른 글

R언어, 제어문  (0) 2025.09.20
R 매트릭스 (matrix, 행렬)  (0) 2025.09.14
R언어 벡터  (0) 2025.09.09
컴퓨터 기초, 프로그래밍 기초(변수, 자료형)  (0) 2025.09.07
R 프로그래밍 개론  (0) 2025.09.06

+ Recent posts