매미
November 29, 2015
우선R을 이용해서 간단한 사칙 연산을 해봅시다. 지금부터 제가 보여 드린 명령을 스크립트 편집기나 콘솔에 입력하고 실행하면 똑같은 결과를 얻을 수 있습니다. 회색 창은 입력한 명령을 나타내고 그 밑에 있는 하얀색 창은 그 명령어를 R에서 실행했을 때 나타나는 결과입니다. 사칙연산은 간단합니다. 우리가 알고 있는 기호 그대로 쓰면 되죠.
2+3+5
## [1] 10
*는 곱하기 기호를 의미합니다.
4*5
## [1] 20
6/5
## [1] 1.2
#여기서 제가 적는 글은 실행이 되지 않습니다. 왜냐하면 #를 누르고 입력한 글자, 숫자들은 주석으로 취급받기 때문이죠.
#주석의 색상은 연녹색으로 나타납니다.
R은 사칙연산의 순서를 준수합니다. 곱하기와 나누기가 먼저고 덧셈, 뺄셈은 나중에 실행되죠.
4+5*6
## [1] 34
덧셈과 뺄셈을 먼저 하고 싶으면 ( )를 이용하면 됩니다.
(4+5)*6
## [1] 54
R에서 거듭제곱은 ^ 키를 이용합니다. 만약 2의 2승을 R로 계산하고자 한다면 2^2라고 입력하면 되죠.
2^2
## [1] 4
지금까지 배운 사칙연산 기호로는 다른 복잡한 계산을 할 수는 없습니다. 하지만 복잡한 계산을 위해서 R에서는 많은 수학함수를 제공하고 있습니다. 한 번 √10을 계산해 봅시다. 제곱근은 R에서 sqrt함수를 사용합니다. √10 은 sqrt(10) √2는 sqrt(2)로 구할 수 있습니다.
sqrt(10)
## [1] 3.162278
sqrt(2)
## [1] 1.414214
그 밖에도 다른 많은 함수들이 있습니다. sin(x) cos(x) tan(x) log(x) exp(x) e^x 반올림 함수 round(x) 등등 더 많은 함수들이 있으니까 한 번 찾아보세요.
sin(5)
## [1] -0.9589243
cos(pi)
## [1] -1
log(2)
## [1] 0.6931472
exp(log(3))
## [1] 3
수학함수들과 사칙연산 등을 조합하면 복잡한 계산도 무리없이 할 수 있습니다.
(cos(0)-sqrt(2))/exp(4)
## [1] -0.007586586
(log(sin(pi/3)-cos(pi/3)))/2
## [1] -0.5025263
자 다음에는 변수를 만들어서 수치나 계산식 등의 값을 대입해 봅시다. 기본적으로 R은 계산을 실행하면 그 결과를 기억하지 않습니다. 하지만 계산 결과를 기억하게 하여 좀 더 편하게 연산을 실행할 수 있습니다. 예를 들어 2√3, 3√3, 4√3, 5,√3, 6√3, 7√3 을 구하고자 한다고 합시다. 2sqrt(3), 3sqrt(3), 4*sqrt(3)… 를 실행해서 구할 수는 있지만 번거롭죠. 이 때 다음과 같이 √3의 결과를 R에게 기억하게 하고 시키면 훨씬 편하게 계산이 가능합니다. x<-sqrt(3) 위 명령의 의미는 x라는 변수에 sqrt(3)이라는 수치를 대입, 혹은 할당하였다는 것입니다. 그러면 이제 R에서 x를 불러 들리면 sqrt(3)이 자동적으로 연결되어 따라 나오는 것이죠. 변수의 대입은 ’<-’명령을 이용합니다.
x<-sqrt(3)
x
## [1] 1.732051
한 줄에 여러 명령을 실행하려면 세미콜론을 사용하면 됩니다.
2*x; 3*x; 4*x; 5*x; 6*x; 7*x
## [1] 3.464102
## [1] 5.196152
## [1] 6.928203
## [1] 8.660254
## [1] 10.3923
## [1] 12.12436
변수의 대입에는 몇 가지 규칙이 있습니다. 이를 간단히 살펴 봅시다. 우선 R은 대문자와 소문자를 구별합니다. Sin, sIn, siN 모두 R에서는 다른 변수로 인식합니다. 그 다음에 변수명에는 로마자와 숫자를 사용할 수 있으며, 또한 이 두 종류를 조합할 수 있습니다. 단 변수명은 숫자로 시작하면 안 됩니다. break, else, FALSE, for, function, in 등은 R에 의해 먼저 예약된 예약어로 변수명으로 사용할 수 없습니다. 변수끼리의 연산도 가능하며, 변수에 값을 다시 대입할 수 있습니다.
x <-2
y<-3
x+y
## [1] 5
x<-4
x+y
## [1] 7