작성자: admin 작성일시: 2016-09-12 16:32:55 조회수: 1084 다운로드: 95
카테고리: R 태그목록:

R을 계산기로 사용하기

R 셸에서 할 수 있는 가장 간단한 프로그래밍은 R을 계산기로 사용하는 것이다.

정수의 연산

셸에서 다음과 같이 입력해보자.

In:
1 + 1
2

띄어쓰기가 위와 달라도 계산은 된다. 하지만 R에서 다음 코드처럼 띄어쓰는 것은 권장하지 않는다.

In:
1+1  # 모두 붙여쓰지 않는다.
2
In:
1      +   1   # 너무 많이 띄우지 않는다. 한 칸만 띄운다.
2

R에서는 정수의 덧셈, 뺄셈, 곱셈, 나눗셈 등을 할 수 있다. 하지만 연산 기호는 수학에서 사용하는 것과 조금 다를 수 있다.

  • $+$ : +
  • $-$ : -
  • $\times$ : *
  • $\div$ (몫) : %/%
  • $\div$ (소숫점까지 구하기) : /
  • 나머지 : %%
  • 제곱 : ** 또는 ^
In:
2 + 4 - 5
1
In:
2 * 4
8
In:
8 %/% 4
2
In:
10 %/% 4
2
In:
10 / 4
2.5
In:
10 %% 4
2
In:
2 ** 3   # 또는 2 ^ 3
8

연습 문제 1

R으로 계산기로 사용하여 다음 연산을 한다.

  1. $$ 3 \times 2 - 8 \div 4 $$
  2. $$ 25 \times 6 \div 3 + 17 $$
  3. $$ 39021 - 276920 \div 12040 $$
  4. $$ 2^{6} - 10 \; \% \; 6 $$

위 식에서 $\%$는 나머지를 구하는 연산이다.

연산 순서와 괄호

R에서도 일반 수학의 연산 순서를 따른다. 즉, 곱셈과 나눗셈을 덧셈이나 뺄셈보다 먼저 한다.

In:
3 + 2 * 4
11
In:
3 + (2 * 4)
11
In:
(3 + 2) * 4
20

괄호가 있으면 괄호안을 먼저 계산한다. 하지만 R은 소괄호, 중괄호, 대괄호를 구분하지 않고 모두 소괄호 기호를 사용한다.

$ 100 \div \Big[ 3 \times \big\{ 10 - (3 \times 2) \big\} + 8 \Big] \;\;\; \rightarrow \;\;\;$ 100 * (3 * (10 - (3 * 2)) + 8)

In:
100 * (3 * (10 - (3 * 2)) + 8)
2000

연습 문제 2

R으로 계산기로 사용하여 다음 연산을 한다.

  1. $$ 12 - (5 \times 7 + 1) $$
  2. $$ 5 \times \big\{ 8 + (10 - 6) \div 2 \big\} $$
  3. $$ 48320 - \big\{ (365 - 5 \times 9) \div 16 \big\} \times 987 $$
  4. $$ ((3^4 - 3 \times 7) \; \% \; 5 + 4 )^ 2 $$

부등식의 참과 거짓 계산

R은 참과 거짓을 계산하는 부등식 연산도 가능하다. R에서는 참과 거짓을 TRUE 또는 FALSE 라는 값으로 나타낸다.

등호 기호는 변수에 값을 할당하는데 사용되기 때문에 비교 연산을 할 때는 등호 기호가 두 개 반복되는 기호를 사용한다는 점에 주의한다.

  • $ > $ : >
  • $ < $ : <
  • $ = $ : ==
  • $ \neq $ : !=
  • $ \geq $ : >=
  • $ \leq $ : <=
In:
2 > 1
TRUE
In:
2 > 2
FALSE
In:
2 == 2
TRUE
In:
2 != 1
TRUE
In:
3 <= 3
TRUE

연습 문제 3

  1. R으로 계산기로 사용하여 답이 TRUE 인 부등식을 3개를 만든다.
  2. R으로 계산기로 사용하여 답이 FALSE 인 부등식을 3개를 만든다.

부울리언 대수

R에서는 참과 거짓에 대해 & (AND) 라는 연산과 | (OR) 라는 부울리언(Boolean) 대수 연산도 할 수 있다.

  • & (AND) 연산은 두 값이 모두 참일 때만 답이 참이 된다. 즉, 하나라도 참이면 답은 거짓이다.
  • | (OR) 연산은 두 값이 모두 거짓일 때만 답이 거짓이 된다. 즉, 하나라도 참이면 답은 참이다.
In:
TRUE & TRUE
TRUE
In:
TRUE & FALSE
FALSE
In:
FALSE & TRUE
FALSE
In:
FALSE & FALSE
FALSE
In:
TRUE | TRUE
TRUE
In:
TRUE | FALSE
TRUE
In:
FALSE | TRUE
TRUE
In:
FALSE | FALSE
FALSE

부등식 연산과 부울리언 대수를 결합하면 다음과 같은 계산도 할 수 있다.

In:
(2 > 0) & (2 < 3)
TRUE
In:
(2 > 2) | (2 < 3)
TRUE

연습 문제 4

다음 식의 값이 참인지 거짓인지 손으로 계산한 후에 R으로 답을 확인한다.

  1. $$ (5 \leq 6 ) \; \& \; ( 3 = 4 ) $$
  2. $$ (2 \neq 1 ) \; | \; ( 3 \geq 4 ) $$
  3. $$ (5 \leq 6 ) \; \& \; (( 0 = 0 ) \; | \; ( 3 < 4 )) $$

변수 사용하기

어떤 값을 계속 사용하는 경우에는 그 값을 변수, 영어로 variable에 담아두었다가 사용할 수 있다. 변수에 값을 넣는 것을 할당한다고 이야기하며 영어로는 assignment라고 한다. 변수에 값을 할당할 때는 화살표 기호를 사용하고 좌변에는 할당할 변수 이름을, 우변에는 할당할 값을 쓴다.

변수이름 <- 변수값

변수의 이름은 알파벳으로 시작하며 뒤에는 숫자가 올 수 있다. R에서는 변수 이름의 대문자와 소문자를 구분하기 때문에 주의하여야 한다. 즉, appleAppleAPPLE 은 모두 서로 다른 변수이다.

In:
a <- 2
b <- 3
a * b
6
In:
a <- 4
( a > 0 ) & (a <= 10)
TRUE

연습 문제 5

변수의 값을 바꾸어 가면서 다음 수식을 계산해 보자.

  1. $$ (2x - 1)^2 + 1 $$
  2. $$ x^{2y} * (z + 10) $$
  3. $$ (( j = 0 ) \; \& \; ( 0 < k )) \; | \; (i \leq 100 ) $$

질문/덧글

아직 질문이나 덧글이 없습니다. 첫번째 글을 남겨주세요!