연산자
값을 계산하거나, 조작하기위해 사용하는 기호
산술, 관계(비교), 논리, 할당 연사자 등
산술연산자
산술 연산자의 연산 결과는 수치형이 나온다.
연산자 의미 예시
====================================
+ 더하기 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 |