▼2020년/기본/기초

[R] 1.1강 R의 변수생성과 기본 연산 [왕초보 용]

ITISIK 2018. 8. 3. 22:46
반응형

  R의 다양한 사용방법을 포스팅 하기에 앞서서 필자는 Windows 10 x64(64비트)를 기반으로 R과 R Studio를 설치한 뒤에 R Studio를 작동시켰다는 사실을 미리 밝힙니다. 이렇게 굳이 말하는 이유는 R이 구동 환경에 따라서 조금씩 차이가 있고, 혹여나 생길 에러 상황에서도 차이가 나기 때문입니다.


  R을 본격적으로 사용하기에 앞서서 R은 기존의 프로그래밍 마냥 처음부터 끝까지 작성한 뒤 구동하는 방식이 아닌, 한 줄 한 줄 단위로 작성할 수 있고 구동할 수 있는 방식을 취하고 있습니다.


  또한, R은 매우 sensitive한 언어입니다. 대소문자를 확실하게 구분하니까 꼭 유념하세요!


  혹시 프로그래밍이 처음이신 분은 우선 아래의 식에 대해 익숙해질 필요가 있습니다.


X = 5

 

  일반적으로 우리는 위 식을 "X는 5다" 라는 뜻으로 배웠을 것입니다.

하지만, 앞으로 "프로그래밍"을 하시는 분이라면 위 식을 보고,


5를 X에 대입한다.

= 5를 X에 입력한다.

= 5를 X에 삽입한다.


  위와 같이 이해하시는 편이 더 낫겠습니다.

  마치 뒤에서 앞으로 읽는 것 마냥 말이죠.


  얼핏 들으면 '같은 얘기인데 그게 그렇게 중요한가?' 라는 생각이 드실지도 모르겠습니다만, 필자가 경험한 바로는 이렇게 이해하시는 것이 은근히 중요합니다.


  이러한 이해 방식은 C언어나 Java 등을 익히실 때도 마찬가지인데요.

  R 역시도 이렇게 암기 하시는 편이 낫습니다.


  자 그럼 이제부터 재미없는 글은 최대한 줄이고, 스크린샷과 함께 설명하겠습니다.


▲ 빨간 네모친 부분에 Console(콘솔)이라 되어있는 것이 바로 콘솔입니다(네?)

콘솔창의 맨 아래줄을 보면 '>' 표시가 있는데 그곳에서부터 우리의 R 프로그래밍이 시작됩니다.




▲위에서 설명드린 x = 5를 입력하고 엔터(Enter)를 누르면,

'>'이 새로이 뜨면서 오른쪽 위의 Value 창에는 'x는 5다'와 같은 의미로 뜨게 됩니다.


아무것도 없던 빈 공간의 어느 영역에 x라는 이름을 부여하고, 그 x는 결국 5다 라고 이해하시면 좋겠지만,

처음에는 이해하기 어려우실 겁니다. 따라서 위에서 말씀 드린 것 처럼,

5를 x에 대입했다. 따라서 x는 5다 와 같이 받아들이시면 되겠습니다.


x = 5와 같은 표기가 왜 5를 x에 대입한다인지 받아들이지 못하시는 분도 계실텐데요,


사실 R에서는 '='와 같은 의미로 '<-'를 사용하며, R Studio에서 

'<-'의 단축키는 'Alt' + '-'(마이너스) 입니다.


▲'<-' 기호를 배웠으니 써먹어 봐야죠? (단축키인 Alt + - 잊지 마시구요~)

이번에는 x <- 7이라고 입력하고 엔터를 쳐보시면,

빨간 네모에서 보이는 것과 같이, 기존의 5는 지워지고 7이 입력되게 됩니다.


이와 같이 x라는 같은 이름의 변수에 처음에는 5, 나중에는 7을 입력하게 되면

나중에 입력한 7이라는 값만이 x의 값으로 남는 다는 사실을 알 수 있습니다.


즉,

x = 5

x = 2

x <- 10

x <- 150

x = 7


이라고 순서대로 실행시키면, 결국 x의 값은 7이 된다는 뜻입니다.


자 그럼 이제 가장 기본연산인 사칙연산, 가감승제(+ - * /)를 해봐야겠죠.


위에서 말씀 드린 것과 같이, 이제 x는 7입니다.

그럼 x + 3의 결과값은 몇일까요?


▲ 맞습니다, 7 + 3은 10이죠.


자 그럼 이제부터는 여러분들의 몫입니다.

기본적인 변수 선언방법과, 변수에 값을 넣는 방법.

(x라는 이름으로 변수를 선언한다. 5를 대입한다.(7을 대입한다))


을 동시에 수행하신겁니다! x = 5,  x <- 7 문법으로 말이죠!


사칙연산인 +, -, *, / 뿐만 아니라,

제곱 기호인 ^도 인식하니 한번 다양하게 사용해보세요!

아래는 제가 생각나는 대로 써본겁니다~


▲이 사진에서 설명이 필요한 건 딱 두가지인데,

첫번째로 "Error: object 'xx' not found" 입니다.

이는 제가 xx를 명령하고선 발생된 에러메시지 인데요.

말 그대로 xx라는 이름의 객체를 찾을 수 없다는 의미입니다.

왜냐하면, 제가 만든 변수는 x 뿐이니까요~


두번째로는 "Error: unexpected ')' in:" 인데요,

이는 )가 나올 때가 아니라는 의미입니다.

즉 괄호를 연적도 없으면서 괄호를 왜 닫냐?

난 괄호가 닫히길 기다린게 아니다. 이런 소리죠.


사실 이 에러메시지는 그 위의 위의 위인 x++에서 기인합니다.

나중에 여러분들께서 R의 고수가 되시면, 코드가 매우 길어질 수도 있는데 이런 경우 가독성을 위해서 강제적으로 개행(줄을 바꾸는 것을 의미)하기도 하지요.

R에서는 이러한 개행 문자로 +를 사용합니다. 즉 한 줄의 마지막이 '+'이면, R에서는 자동으로 "아직 명령이 떨어진게 아니다. 사용자가 적을 명령이 더 있다."는 것으로 받아들이는 것이죠.

그래서 실제 사진에서도 x++ 이후에 '>'기호가 생기지 않고, + 기호가 발생되지요? 이 역시도 아직 명령이 끝나지 않았다는 의미랍니다. 그래서 저는 강제적으로 ')'를 입력하여 에러를 발생시키고 다시 명령을 받을 준비가 됐다는 >기호를 맞이하게 된 것입니다.


사실! 원치 않게도 >가 아닌 +가 뜬 경우, ESC 키를 눌러서 해결하실 수 있지만, 제가 그렇게 해버리면 스크린 샷을 가지고 설명하기가 어려워서 굳이 )를 입력했습니다.



오늘의 요점을 정리하면,


1. 'x = 5'는 'x는 5이다'가 아니라, '5를 x에 넣는다'는 의미다.


2. '='와 '<-'는 100% 같은 의미이며, '<-'의 단축키는 'ALT' + '-'이다.

   그리고 이는, 변수생성과 변수값 입력이 동시에 이뤄지는 작업이다.


3. 콘솔 창에서 '>'는 명령을 받을 준비를 마쳤다는 뜻(명령을 입력하시오)이고, +는 명령이 입력되고 있는 중이라는 뜻이다.


4. 기본적인 연산인 가감승제는 계산기에서 평소 하던 것 처럼 수행한다. + - * /


이상으로 왕초보를 위한 1.1강을 마치겠습니다.

반응형