본문 바로가기

Data analysis story

[R프로그래밍] 기본 연산, 기본 문법

안녕하세요 여러분!

오늘부터 R과 파이썬에 관한 포스팅을 차차 진행해보려고 합니다!

요즘 초등학생들도 코딩학원을 다닌다는 소리가 들려올 만큼 프로그래밍에 대한 중요성이 커졌는데요!

여러 프로그래밍 언어 중 저는 R과 파이썬에 대해 포스팅 할 예정입니다!

 

또 이 두가지는 무료이니까 누구나 쉽게 접근할 수 있다는 것이 장점입니다!

4개월 동안 이 두언어에 대해 우리 같이 열심히 배워보아요!

 

R에 대해서 공부하기 전에 먼저 여러 블로그=들을 참조하셔서 RRStudio를 설치해주세요!

 

이번 포스팅에서는 R의 사칙연산과 그 외의 여러 계산들, 그리고 R의 기초문법이라고 할 수 있는 몇 가지에 대해 다루어 보겠습니다.

 

R의 사칙연산은 이 네 가지 기호를 사용하여 할 수 있습니다!

 

더하기와 빼기는 ‘+’‘-‘

곱하기와 나누기는 ‘*’‘/’로 할 수 있습니다.

 

예시를 볼까요? RStudio를 띄워 따라 치면서 연습해보세요!

간단한 계산이니 콘솔 창에다가 입력해볼게요!

 

+,-,*,/를 이용하니 엔터 하나만으로 빠르게 계산된 값이 나오죠?

 

조금 더 복잡한 계산을 해도 빠르게 결과가 나온답니다.

 

 

 

이렇게 말이죠! 그런데 여러분 사칙연산을 할 때 우선 순위가 있었던 거 기억이 나시나요?

 

수식의 계산은 왼쪽에서 오른쪽으로 차례대로 하되, 곱셈과 나눗셈을 덧셈과 뺄셈보다 먼저 하게 되어 있죠.

하지만 곱셈, 나눗셈 보다 무서운 아이가 뭐였죠? 바로 괄호였죠! R에서도 이 괄호를 사용하면 먼저 계산할 수 있습니다.

위의 예를 괄호를 사용해볼게요!

 

더하기 계산에 괄호를 쳐서 계산해달라고 했더니 아까와는 답이 다르게 나왔죠?

이렇게 R에서 사칙 연산을 할 때 +,-,*,/와 괄호를 사용하면 원하는 계산을 빠르게 할 수 있답니다!

 

사칙연산 외에도 거듭 제곱이나, 제곱근, 그리고 로그 계산 등등은 어떻게 해야 할까요?

먼저 거듭 제곱은 아까 봤던 곱하기 기호를 두 번 쓰거나 ‘^’기호를 쓰면 됩니다. 예를 들어볼게요!

이렇게 말이죠!

거듭 제곱을 알아봤으니 제곱근을 어떻게 구하는지도 알아봐야겠죠?

 

제곱근을 구하기 위해서는 앞서 배웠던 거듭제곱(**^)을 구하는 기호를 쓰는 방법과

sqrt()라는 함수를 쓰는 방법이 있습니다.

먼저 sqrt()라는 함수를 쓴 예제부터 살펴볼게요. 9의 제곱근을 구해봅시다!

 

 

함수 하나로 제곱근이 빠르게 구해졌습니다!

그러면 **^로 제곱근을 어떻게 구할까요?

9의 제곱근은 어떻게 보면 9에다가 0.5를 거듭제곱한 값이잖아요!

그렇기 때문에

 

이렇게 해주면 같은 값이 나오게 되겠죠!

자, 그럼 이제 로그는 어떻게 계산할 수 있을지 살펴보죠

 

을 계산하려면 R에서 어떻게 할 수 있을까요?

 

이렇게 해주면 된답니다!

 

사칙연산과, 거듭제곱, 제곱근 등등 이런 계산 과정에서 알면 유용한 함수들을 몇 가지 소개할게요!

 

 

사칙연산과 여러 계산으로 나온 결과을 반올림해서 나타내고 싶다면 어떻게 해야 할까요?

 

반올림을 해주는 함수는 round()입니다.

 

그런데 R에서 반올림의 결과 값은 입력한 수가 홀수인지 짝수인지에 따라 달라지는데요

먼저 홀수를 반올림할 때의 값을 보도록 하죠

 

우리가 익히 알고 있듯이 소수점 뒤의 숫자가 5이면 반올림을 하네요!
그런데 짝수의 경우 조금 다릅니다.

 

5를 조금이라도 넘어야 반올림이 되는 것을 알 수 있죠! (너무 조그만 경우는 안됩니다!)

 

그리고 이제는 올림에 대한 함수에 대해 알아볼게요!

 

ceiling()함수입니다. 예를 들어볼게요!

 

올림의 경우 홀수, 짝수에 관계없이 그 수보다 조금이라도 더 크면 바로 위의 정수로 올려주네요!

 

마지막으로 버림을 보겠습니다! floor()함수입니다.

이렇게 사용할 수 가 있어요!

 

그리고 프로그램 문제에 많이 사용될 수 있는 나머지와 몫을 구하는 방법에 대해 알아볼게요! 이것 또한 계산을 할 때 알아 두면 좋겠죠!

 

나머지를 구할 때는 %%

몫을 구할 때는 %/%를 사용합니다.

 

예를 들어볼까요?

 

이 나머지와 몫을 구하는 기호는 프로그램에 아주 자주 쓰이니 꼭 기억해두세요!

 

 

이제 R의 기초문법이라고 할 수 있는 몇 가지에 대해 다루어 보겠습니다.

 

먼저 변수란 무엇일까요?

 

프로그램은 작업 처리 과정에서 필요에 따라 데이터를 메모리에 저장하는데 이 때 ‘’변수라는 것을 사용합니다. 즉 변수는 값을 저장할 수 있는 메모리의 공간입니다.

 

이렇게 메모리에 5라는 숫자 데이터를 저장하기 위해서 x,y라는 변수를 사용하는 것입니다. 위 그림에서 볼 수 있듯이 변수에 데이터를 할당하기 위해서는 ‘<-‘라는 할당 연산자를 사용합니다.

 

변수명으로 사용할 수 있는 것 들에는 몇 가지 규칙이 있는데요!

R 변수명 규칙에 대해서 알아보겠습니다!

R 변수명은 대소문자를 구분합니다. X라는 변수와 x라는 변수는 다른 변수입니다.

영어와 숫자 모두 쓸 수 있으나시작은 반드시 문자 또는 .”으로 시작해야 합니다.

 

변수명 처음에 숫자를 설정해볼까요?

 

이렇게 오류가 발생합니다!

 

그리고 변수 이름에 예약어는 사용할 수 없습니다.

이렇게 R에서 미리 정해진 예약어는 변수로 사용할 수 없습니다.

 

이렇게 데이터를 변수에 넣었는데 이 데이터를 확인하고 싶으면 어떻게 해야 할까요?

 

결과를 출력할 수 있는 함수를 사용해야 합니다. 함수는 앞서서 제곱근, 반올림한 값 등을 구할 때도 사용했는데요.

 

과연 함수란 무엇일까요?

함수는 특정 기능을 수행하는 명령문을 함수라고 한다. , 반올림 기능을 수행하는 함수는 round()였고 제곱근을 구하는 기능을 수행하는 함수는 sqrt()였습니다.

 

그렇다면 변수에 넣은 데이터를 출력하는 함수는 무엇일까요?

아주 많이, 유용하게 쓰이는 함수 print()함수입니다.

 

예시를 통해 확인해봅시다!

x라는 변수에 3을 할당하고, y라는 변수에 4를 할당한 후

앞서 배운 사칙연산 중 더하기를 활용해 덧셈한 값을 출력함수 print()를 써서 출력해보도록 하죠!

이렇게 결과 값을 출력해서 화면에 보여주는 기능을 하는 함수가 print()함수입니다.

 

print()함수를 사용하면 이렇게 숫자든, 문자든 화면에 보일 수 있게 출력해줍니다.

 

그런데 여러 값을 출력하고 싶을 때도 이렇게 print함수를 쓰면 될까요?

한번 해보겠습니다.

숫자 두개와 문자 두개를 출력하기 위해 print값을 썼으나

숫자는 첫번째 숫자만 출력이 되고

문자를 출력하려고 하니 에러가 뜨네요!

이렇게 print()함수는 하나의 데이터밖에 출력하지 못합니다!

 

그렇다면 여러 개의 값을 출력하려면 무슨 함수를 써야하나요?

바로 cat()함수를 쓰면 여러 개의 값을 오류없이 출력할 수 있습니다!

이렇게 두 개의 값이 아니더라도 여러 개의 값을 출력할 수 있는데요!

위의 예처럼 4개의 값을 한번에 출력할 수도 있습니다.

그런데 출력할 값이 너무 많아서 줄바꿈을 해주고 싶다면

위의 예에서 사용한 것처럼 줄바꿈을 해주고 싶은 부분에 “\n”을 입력해주면 줄바꿈이 되어 출력된답니다! 줄바꿈도 많이 사용합니다!

 

그렇다면 이제 작업용 디렉토리를 확인하는 함수에 대해서 알아볼게요!

저의 지금 작업용 디렉토리를 확인해보죠!

 

이렇게 getwd()라는 함수를 쓰면 지금 작업하고 있는 위치가 어디인지 알려줍니다!

혹시 이 작업 위치를 바꾸고 싶다면

setwd()라는 함수를 사용하면 됩니다.

setwd() 함수를 사용해서 작업 경로를 바꾸고 getwd()를 사용해서 작업 경로가 바뀌었는지 확인해볼게요!

 

 

함수와 붙어서 사용하는 인수란 무엇일까요?

함수에 붙여서 표현하는 인수는 함수의 기능을 세밀하게 조정하는 것입니다.

위에서는 간단하게 함수만 사용했지만 이런 함수에는 인수라는 것이 붙을 수가 있는데요

함수의 기능을 세밀하게 조정하는 것을 인수라고 한다. 감이 잘 안 오면 예시를 통해 확인해볼게요!

 

예를 들어서 앞의 예시를 활용해보면

 

 

이렇게 cat함수를 이용해서 네 개의 문자열을 이어서 출력했습니다.

그런데 문자열 사이사이에 쉼표를 넣어주고 싶다면 어떻게 할까요?

그럴 때 바로 sep=이라는 인수를 설정해주면 됩니다.

 

 

sep=은 어떤 것을 사용해서 분리하겠다는 인수인데요

이렇게 sep=이라는 인수를 적용하니 문자열 사이사이에 “,”가 추가된 것을 볼 수 있죠!

이렇게 함수의 기능을 세밀하게 조정해주는 것이 인수입니다.

 

마지막으로 주석 다는 법을 배워볼게요!

주석은 코드에 대한 설명이라고 보면 되는데요

앞서 getwd()와 같은 함수를 사용하여 작업 경로를 파악했는데

이 함수를 모르는 사람이 본다면 이 함수로 무엇을 하려는 건지 모를 수 있겠죠

그래서 옆에 그 코드에 대한 설명을 달아주면 가독성이 높아지겠죠!

‘#’를 사용해서 코드 옆에 붙여주면 설명으로 인식하고 코드에 지장을 주지 않는답니다!

 

이렇게 해서 사칙연산, 기타 연산

변수, 함수(print, cat, getwd, setwd), 인수, 주석에 관한 R의 기본적인 문법에 대해 알아보았습니다.