본문 바로가기

DEVELOP/IT

[데이터] R 프로그래밍 :: 변수란? 변수 만들기

반응형

모든 프로그래밍 언어를 배울 때 처음 배우는 건 변수다. 변수는 영어로는 Variable이다. Vari- 접두사가 붙으면 다양한, 변하는 정도의 뜻이다. 변하니깐 다양하겠지. 그리고 -able 접미사는 ~할 수 있다는 뜻이다. 그러니깐 Variable은 '다양할 수 있는, 변할 수 있는'이란 의미를 내포하고 있다고 볼 수 있다. 그리고 한자로도 변할 변 자에 수 수 자를 쓴다. 변하는 수다.


박스로 보는 변수와 상수

1. 변수란?


변수는 다양한 값을 담을 수 있는 상자다. 그 값은 집어넣기 나름이다. 숫자일 수도 있고, 문자일 수도 있고, R의 영역은 아니지만 리스트나 튜플, 딕셔너리 같은 다양한 형태를 가질 수 있다. R에서도 c( ) 함수를 이용해 리스트와 같이 변수 하나에 여러 개의 값을 넣을 수 있긴 하다. 반대로 변하지 않는 값은 상수라고 부른다. 영어로는 Constant, 일정하다는 뜻이다. 


위의 그림을 보면, 열린 상자는 변수라고 할 수 있다. 열려 있어서 내용물을 맘대로 넣었다 뺐다 할 수 있다. 긴 상자의 경우 내용물을 여러 개 넣을 수도 있다. 프로그래밍에서는 상자의 길이는 무한하다. 반대로 닫힌 박스는 상수라고 볼 수 있다. 막혀있어서 안의 내용물을 바꿀 수 없다.



2. R에서 변수 만들기


변수명 <-

or

수명 = 값 


기본적으로 내가 배운 파이썬, 자바, 자바스크립트 같은 프로그래밍 언어에서는 등호(=)를 사용해서 변수에 값을 할당한다. 자료형을 따로 선언해줘야 한다거나, 마지막에 세미콜론(;)을 붙여야 하는 디테일한 차이점은 있지만 기본 형태는 '변수명 = 값'이었다.


R에서는 조금 다르다. 등호를 사용해도 되긴 하지만, 권장하진 않는다. 부등호와 대시를 사용한 화살표 기호(<-)를 사용한다. R에서는 등호(=)가 변수 만들기 위에도 다른 기능을 하기 때문이다. 헷갈리지 않으라고 하는 암묵적인 약속 같은 것이다.


age 라는 변수에 27이라는 값을 할당하고 싶다면, age <- 27이라고 쓰면 끝이다. 지금 R 스튜디오에서 스크립트를 열고 아래 코드를 쳐보면 확인할 수 있다.


age <- 27

age 




3. 변수 만들 때의 규칙


실제로 R 외에 다른 프로그래밍 언어도 사람마다 코드 해석을 다르게 하지 않게 하기 위한 암묵적인 규칙이 있다. 1인 개발이라면 자기 마음대로 해도 상관없지만, 그 코드를 다른 사람에게 보여주는 순간 욕을 먹을 지도 모른다. R에서 변수와 관련된 몇 가지 규칙을 알아보겠다.


1) 변수명은 알파벳으로 만든다.

한글로 해도 되긴 된다. 근데 오류가 날 수 있다. 인코딩이 안 맞거나 한국어가 지원 안 되거나, 그냥 영어로 하는 게 마음 편하다. 이왕이면 a, b 같은 무의미한 변수명보다는 age, name처럼 변수명에서 그 값을 유추할 수 있는 이름을 쓰는 게 좋다. 너무 당연한 얘긴가.


2) 변수명의 시작은 문자로 한다.

숫자로 하면 오류가 난다. 이유는 모르겠다. 많은 프로그래밍 언어가 비슷하다. 왜인지 묻는 것은 좋은 자세긴 하지만, 빠르게 진도를 나가고 싶다면 그냥 그렇구나 하고 넘어가는 것이 낫다. 왜에 대해 생각하는 순간 프로그래밍을 넘어 컴퓨터 공학의 수준까지 파야 한다. 그냥 변수명은 문자로 한다.


3) 변수명은 소문자로 한다.

대소문자를 구분한다. 대문자로 해도 기능에 문제는 없는데, 그냥 관습이다. 보통 소문자가 읽기에 더 익숙하다. 대문자가 눈에 더 팍팍 잘 들어오고 글자 간 구별이 잘 될 것 같긴 한데, 그냥 소문자로 쓴다.

간혹 두 단어 이상의 단어를 붙여서 변수명을 만들 때가 있다. 그 때는 언더바(_)나 대시(-)를 붙이면 가독성이 좋아진다. 카멜 케이스라는 것도 있다. 예를 들어 Apple Developer란 의미로 변수명을 만들고 싶다면, appleDeveloper라고 쓰는 것이다. 중간부터 시작하는 단어의 첫 글자만 대문자로 써주는 것이다. AppleDeveloper이건 카멜 케이스가 아니다. 첫 단어의 첫 글자도 대문자니깐.

자바스크립트에서는 카멜 케이스가 표준이다. 근데 일단 내가 R을 공부한 책에서는 여기에 대한 언급이 전혀 안 나온다. 언더바를 주로 활용하는 걸 보니 이게 R에서의 관습이 아닐까 싶다. 그래서 나도 R에서는 언더바를 사용한다.




시작 중의 시작이다. 이제 변수에는 어떤 값이 들어갈 수 있는지 알고, 그걸 활용해서 무엇을 할 수 있는지를 공부해야 한다. R은 통계 분석에 초점이 맞춰져 있는 언어라 프로그래밍적으로 복잡하지는 않다. 그냥 명령어를 알고 그 명령어를 입력하면 어떤 결과가 나오는지 배우는 정도? 공부하는 데에 그리 큰 인풋이 들지 않으니 배워두면 유용하게 쓸 날이 올 거라 생각한다.

반응형