변수란?
R은 단순 계산이 아니라 좀 더 복잡한 분석 작업을 하기 위해서는 변수라고 하는 개념을 이해해야할 필요가 있습니다. 보통 프로그래밍 언어를 배울때에도 변수라는 개념을 이용하는데 이 변수를 이해하고 잘 쓰실수 있으면 굉장히 효과적으로 데이터 분석작업을 할 수 있습니다. 변수는 직역을 하면 변할 수 있는 숫자입니다.
우리가 어떤 물건을 보관해 놓는 보관 장소 혹은 그림에 보는것처럼 어떤 박스라고 생각하면 됩니다. 그래서 이 박스에다가 10을 10이라고하는 숫자를 저장해놓을 수 도 있고 50이라고하는 숫자를 저장해놓을수 있습니다. 어떤 형태의 자료를 이렇게 보관해 놓을수 있는 그릇 보관장소를 변수라고 이해를 하면 됩니다.
이 변수는 어떤 숫자나 자료를 보관해 놓을수 있는 박스 같은건데 이름을 붙여 놓읍니다. 그래야 박스와 박스가 구분이 되고 어떤 박스에 뭐가 들었나 알수 있겠죠? 정리를 하면 변수는 어떤 자료나 숫자를 저장해 놓을수있는 보관해 놓을수 있는 박스이고 거기에는 이름이 붙어있는 것을 뜻합니다.
변수 사용하기
그러면은 변수에다가 어떻게 숫자를 저장할까요? 첫번째 명령어는 a라고 하는 변수에 즉, a라고 이름 붙인 박스에다가 10 이라고하는 숫자를 저장하는 명령이 입니다. 그래서 a하고서 a쪽으로 화살표가 있죠?
그리고 오른쪽에 10이 있습니다. 이것은 10이라고 하는 값을 a라고하는 변수에다가 저장을 하는 명령입니다. 이런 명령이 되겠습니다 그러면 a라고 하는 변수에는 10이라고 하는 값이 보관이 됩니다. 그럼 우리가 그 값을 꺼내서 어떤 작업에 쓸 수 있습니다.
그래서 보통 데이터 분석 작업에는 변수를 이용해서 숫자를 저장하고 꺼내오고 바꾸고 분석을 진행을 하게 됩니다. 20이라고 하는 값을 b에다 저장을 합니다. 그 다음에 a와 b에 들어있는 변수에 들어있는 값을 꺼내서 합해서 c에 저장을 합니다. 그 다음에 그냥 c라고 하나 딱 되있죠? 이것은 어떤 명령이냐면 c라고 하는 변수에 들어있는 값을 보여주는 명령어입니다.
이 변수는 프로그래밍 언어의 변수하고 유사합니다. 다른점이 있다고 하면 변수의 자료형을 지정하지 않습니다. 그래서 이 변수에는 어떤 값이든 어떤 자료형이든 다 저장이 될 수가 있습니다. 그리고 문자형 자료를 저장할때는 작은 따옴표 혹은 큰 따옴표로 묶어서 저장한다 그런 점이 일반적인 프로그래밍 언어하고 유사한점입니다. 이어서 명령어들을 살펴보면 a에 10을 저장하고 b에 20을 저장한 다음에 a+b하고 엔터를 치면 a와 b에 들어있는 숫자를 합해서 화면에 보여줍니다. 그 다음에 a에다가 따옴표 안에 대문자 a를 저장하고 있는데 문자형으로 되있는 자료를 저장할때는 따옴표로 묶어서 저장합니다.
분명히 위에서는 a에 10을 저장했습니다. 그런데 네번째줄에서 a에 다시 대문자 문자형의 a를 저장하고 있습니다. 그러면 a가 어떻게 될까요? 원래 숫자가 들어있었는데 문자를 다시 집어넣으면 원래 있던건 지워지고 새로 넣은게 무조건 들어가게 됩니다. 그래서 변수가 어떤 값을 가지고 있는데 거기에 다른값을 넣으면 이전 값은 무조건 지워집니다. 이 상태에서 a + b하면 a는 숫자고 b는 문자니까 계산이 안됩니다.
R을 사용하는 명령어인데 이렇게 짧은 명령어들을 여러줄에 걸쳐서 쓰다보면 좀 짜증이 날 수 있겠죠?
짧으니까 한줄에 여러개 명령어를 쓰고싶다 그럴땐 명령어를 보시는것처럼 세미콜론으로 구분을 하면
명령어와 명령어가 구분됩니다. 그렇지 않으면 보통은 한줄에 있는것을 하나의 명령어로 R은 이해를 합니다.
변수는 데이터를 보관하는 박스라고했죠? 그 박스에 이름을 붙힐수가 있다고 했는데 아무렇게나 붙이는건 아닙니다. 규칙이 있습니다. 그걸 갖다가 변수 이름 규칙이라 합니다. 우선 첫번째는 이 변수의 첫번째 글자는 무조건 문자 즉, abcd 이런 문자나 혹은 dot로 시작할 수 있습니다. 문자나 점으로만 시작할 수 있다는 뜻이니까 숫자로 변수이름을 시작하면 안됩니다. 그리고 특수문자등 @이나 이런걸로 변수 이름을 시작하면 안됩니다.
문자 알파벳 그 다음에 숫자가 두번째 글자 부터는 올 수 있습니다. 그 다음에 점이 올수있구요. 그 다음에 보통 우리가 얘기하는 언더라인이 있습니다. 짧은 밑줄 이런것들을 변수이름을 만들때 섞어서 쓸수 있습니다. 그리고 이제 중요한 게 하나 있습니다. 우리가 이제 보통 알파벳을 이용해서 이제 변수 이름을 붙입니다. 그런데 알파벳에서는 대문자와 소문자가 있습니다. 이 소문자로 만든 변수 하고 똑같은데 대문자로 만든 변수는 다른 변수로 인식이 됩니다. 그래서 이것을 여러분이 굉장히 주의해서 사용을 하셔야 됩니다.
변수 이름 규칙
그래서 여기에 있는것처럼 소문자 avg합니다. 대문자 avg는 다른 변수입니다 서로 구분되는 변수입니다.
그리고 이제 세번째 있는 것처럼 점을 이용해서 변수이름을 만들때 쓸수가 있습니다. 우리가 보기에 육안으로 다르면 다른 변수입니다.
변수에 값을 할당
그 다음에 이제 변수에 어떤 값을 정하는 방법이 있는데 화살표를 이용을 합니다. 화살표를 이용을 해서 값을 저장을 하는데 또 이 화살표와 같이 많이 쓰이는것이 등호입니다. 보통은 화살표를 이용하도록 많이 이야기를 합니다.
그리고 그럼 변수에 우리가 어떤 값을 저장을 해놓으면 그 변수가 어떤 값을 보관하고 있다고 했는데 그러면 언제까지 이 변수가 이 값을 보관하고 있을까요? 이론적으로는 영원입니다. 즉 컴퓨터를 즉 컴퓨터나 혹은 이 R소프트웨어를 종료하기 전까지는 우리가 어떤 변수에 어떤값을 한번 입력해 놓으면 계속 유지되는 것입니다.
그 아까 변수에 있는 값을 보고싶으면 변수이름을 그냥 타이핑하고 엔터치면 됩니다. 명시적으로 보고싶으면 print라고 하는 함수를 쓰면됩니다.
유용한 단축키
그래서 이제 변수를 이용한 작업을 하다보면 여러가지 사용하기에 편리한 그런 기능들이 있습니다. 단축키라고 보통 부릅니다. 화살표기호 화살표기호를 여러분들이 두번 눌러야 됩니다. 꺽쇠하나 그다음에 여기 마이너스 뭐하나 이렇게 두번입력을 해야하는데 Alt키와 마이너스를 누르면 화살표가 바로 생깁니다.
R스튜디오가 한쪽은 명령어를 입력하는 창이고 한쪽은 콘솔창 결과가 실행되고 출력되는 창입니다. 그래서 이 두 창사이를 왔다갔다 할 일이 많은데 이거를 마우스로 클릭을 해야됩니다. 창을 클릭해야 되는데 보통 이런 입력 작업을 하다보면 마우스로 손이가는것 조차 번거롭습니다. 그래서 두 창을 왔다갔다 하려면 Ctrl 2와 Ctrl 두가지 키를 이용해서 명령어 입력창하고 콘솔창 사이를 왔다갔다 할 수가 있습니다.
R에서 사용할 수 있는 자료형
보통 저장될수있는 자료의 자료형 데이터 타입이라 합니다. 데이터 분석에 이용을 하니까 숫자가 당연히 저장이 됩니다. 소수, 실수형 그다음에 마이너스 이런 값들이 저장이 될수가 있습니다. 그리고 또 문자형 한글자인 이런 문자와 여러글자로 연결되어있는 문자열이 또 변수에 저장이 될수가 있습니다. 그리고 보통 논리형 true, false도 하나의 자료로 저장이 될 수 있습니다 얼핏보면 true, false가 문자로 되있으니까 문자열로 생각할 수 있는데 따옴표가 없습니다. 따옴표가 없고 true, false 반드시 이렇게 대문자로 써야합니다.
그리고 기타 특수문자들이 있습니다. 좀 이해가 되는데 우선 null이라고 하는 이것도 마찬가지로 대문자로 되있고 따옴표 없이 n u l l로 되있습니다. 이 null은 비어있는 값입니다. 변수는 있는데 즉, 어떤 값을 저장할 수 있는 박스는 준비가 되있는데 아무것도 없는 상태를 null로 표현을 합니다.
그 다음에 null하고 좀 비슷한데 na라고 하는 값이 있습니다. 이것은 결측값이라 합니다. 이거의 의미는 어떤값이 거기에 분명히 저장이 되있어야 하는데 어떤 이유로 빠져있는값으로 이해하면 됩니다.
그 다음에 nan이렇게 되있는건 수학적으로 정의가 불가능한것들입니다. 루트 3은 계산이 안됩니다. 이런 불가능한 값을 nan 이렇게 부릅니다. 그다음에 inf하고 -inf는 양의 무한대 음의 무한대를 나타내는 특별한 값이 되며 어떤 기호가 됩니다.
이런 특수한 값들은 따옴표 없이 문자열 형태로 표현이 됩니다. 보통은 많이 쓰는 문자열은 숫자 문자 논리형 이정도가 많이 쓰이니 그것을 위주로 연습을 하면 됩니다.
'SW > R' 카테고리의 다른 글
R : 벡터 연산, 함수, 논리값 개념 및 예제 (0) | 2019.01.30 |
---|---|
R : 벡터(vector) 개념 및 예제 (0) | 2019.01.29 |
R 기본사용법 (사칙연산, 함수) (0) | 2019.01.28 |
R, RStudio 설치 방법 (0) | 2019.01.10 |
빅데이터 개념 (0) | 2019.01.09 |