오늘은 R Programming 기초부분을 다뤄볼 텐데요!
R은 상업용 SAS, SPSS등 처럼 라이센스 취득에 따른 비용이 들지 않고, 자유분방하게 누구나 이용할수 있는 프리웨어이자, 오픈소스입니다.
그렇다면 R의 장점을 알아볼까요?
R은 상용패키지인 SAS, SPSS, KXEN 등보다 새로움에서 앞섭니다. 즉 상용패키지들은 새로운 알고리즘을 적용시키는데 있어서 안정성을 거쳐 시간이 걸리는 데 비해서, R은 언제어디서나 누군가가 패키지를 올리면 바로 사용할 수 있습니다.
반대로, 그것이 쓸만한 지를 알기 위해서는 지식이 있어야겠죠? 또, 비용이 들지 않습니다. 이것도 큰 부분이죠!
그리고, 다양한 사용자가 공유합니다.
대표 사이트는 R-bloggers(www.r-bloggers.com) 입니다.
그렇다면 R을 어떻게 설치할까요? http://cran.r-project.org/ 에 들어가시면
위와 같은 사진을 볼 수 있는데요! 그렇다면 자신이 사용하는 OS를 클릭합니다.
아직까지 저같은 초보자는 큰 불편없이 사용하고 있으니, 괜찮은 것 같습니다.
저는 Windows사용하니까 Download R for Windows를 누르면
위와 같이 뜨는데요, 거기서 base를 눌러줍니다. 기본 설치를 하는거지요.
뒤에 보이듯이 This is what you want to install R for the first time. 즉 처음 까시는 거니까 누르시면 됩니다.
누르시면 제일 위에 Download 버튼을 누름으로서 다운로드는 완료됩니다.
참고하실 점은, R studio를 안 깔아도 됩니다!! 저는 R studio를 잘 안쓰는데요, 크게 문제는 없습니다!
R studio에서는 시각화까지 자동적으로 다 되는? 그정도 .. 인듯 싶습니다.
+ R studio를 설치하실 분은 http://rstudio.com/products/rstudio/에서 download하여서 default대로 설치하시면 됩니다.
제가 글 쓰는 기준으로 R은 3.3.1버전인데요, 버전도 중요합니다. 이게 그냥 프리웨어이다보니까 상위버전에서 작성된, 혹은 수정된 패키지들은 하위버전에서 쓸 경우 에러가 발생할 수 있습니다. 혹은 읽어들였다고 뜨지만 실제론 읽어들이지 못하거나요. 인자가 없다고 뜨는 에러가 제가 처음 겪어본 버전 차이 에러였습니다. R을 까시면, message translation을 체크해주시고 깔아주시면 됩니다. 이러한 소소한 것들은 그림으로 안하겠습니다. 한국인이면 잘 따라서 하실 것이라고 믿습니다. 메세지 번역을 체크해주시면 한국어로 막 번역한듯한 (?) 그래도 알아들을 수 있는 한국어로 떠서 영어로 보시는 거 보다 수월할 겁니다.
자신의windows 버전이 32비트인지 64비트 OS인지 제어판 같은곳에서 확인해보시고 설치해주시기 바랍니다.
그리고 다 설치하시면 일단 설치는 끝납니다.
일단 실행하기 전에, R을 다시소개보자면, R은 오픈소스 프로그램으로, 통계/데이터마이닝 및 그래프(시각화)를 위한 언어로 하나의 프로그램으로 구성되어 있지 않고, 메인 프로그램과 그에 따른 다양한 기능은 패키지 형태로 필요시 설치를 통해서 이용할 수 있습니다.
2015년 1월기준 CRAN사이트에서 6,200여개 패키지가 공식적으로 제공되고 있다고 하니, 현재는 더 많은 패키지가 있겠죠.
R의 처리방식은 뭘까요?
R은 기본적으로 메모리로 처리합니다. 따라서 충분한 메모리가 핵심입니다. 가령, Windows 32bit에서 4GB는 개인학습용 수준이고, 데이터 양이 늘어날 때마다 메모리가 훨씬 더 커야겠죠? 4GB메모리라고 하더라도 가용 메모리는 훨씬 적으니까 4GB를 확보하고 쓰시려면 8GB는 되어야 합니다. 하지만 앞으로 다루는데 있어서 그렇게 엄청나게 큰 데이터는 없을 겁니다!
개인 학습용으로는 너무 후진(?) 컴퓨터만 아니라면 충분히 가능할 것으로 생각됩니다.
그러면 이제 기본 사용법부터 알아볼까요?
이러한 화면으로 만들어주세요.
오른쪽 제목없음-R편집기라고 떠있는 것은 파일-> 새 스크립트를 누르시면 생기는데요,
앞서서 R Console 창을 바로 이용해도 상관없지만 옆에 스크립트 창을 쓰는 이유는!
나중에 저장하셔서 불러들여서 간편하게 사용할 수 있기 때문입니다.
R 콘솔창은 즉, 입력과 동시에 실행창이 됩니다. 오른쪽 창은 입력창의 역할을 하죠.
일단, 저 왼쪽 창의 파란색 글씨들은 쓸데 없습니다. 그러니까 지워볼까요?
실행창의 지저분한 것들을 모두 제거하는 버튼은
Ctrl + L 입니다. Ctrl+L을 눌러주시면 싹 지워집니다! 신기하죠??
그렇다면 이제 R의 기본이해를 해보겠습니다.
****제가 이제 여기에 쓰는 명령어 혹은 함수들은 다 스크립트 창(우측 창)에 쓰는 것입니다.
우측 창에 쓰고 Ctrl+R 버튼을 눌러주시면 자동적으로 좌측 콘솔창에서 명령어 실행이 됩니다. 이 점을 염두하시고 따라해주세요.
1. R에서 벡터를 생성해볼까요?
변수명은 보통 왼쪽에 쓰며, "=" 나 "<-" 표시로 임의의 값을 변수 안에 집어넣습니다.
R에서는 a,b,ab,adsjaldjw 이러한 모든 알파벳들은 함수를 뜻하거나 비어있는 변수를 뜻합니다.
즉, 방정식 풀듯이 x는 비어있는 값이고, 제가 지정한 값들이 그 안으로 지정되는 형태를 가집니다.
가령, 임의의 a라는 변수 안에 오늘 날짜를 넣어볼까요?
오른쪽 콘솔창에 a<-20160715를 치시고 Ctrl+R을 눌러주면 왼쪽에서 실행이됩니다.
이제부터 Ctrl+R, Ctrl+L등 설명 했던 내용들은 언급하지 않겠습니다.
위에서 확대해서 보시면, a라는 임의의 변수에 값을 할당하는데, <-방식을 사용해도 되고, =을 사용해도 됩니다.
a라는 변수에 오늘 날짜, 20160715를 넣어주고 a1이라는 변수에
Numeric(숫자)이 아닌, Character(글자)형식으로 넣을 땐 " " 이렇게 따옴표 처리를 해주면 됩니다.
(여기다 스크립트를 써 드려서 복사붙여넣기 하는거 보다 직접 쳐보시는게 좋습니다)
a<-20160715
a1<-"나는 카페에 있다."
이렇게만 치고 실행하면, a와 a1이라고 지정한 곳에 제가 할당한 20160715와 "나는 카페에 있다."라는 글자가 할당됩니다.
그런데 왼쪽 콘솔창을 보시면 입력만 되고 a는 20160715라고 출력은 되지 않죠? 출력을 시키는 방법은 여러가지가 있는데요,
1. a를 치고 실행
2. print()함수를 이용하여 print(a)를 친다.
3. ()괄호 안에서 수행시킨다.
3. () 괄호 안에서 수행시키면 R에서는 바로 결과물을 출력합니다. 왼쪽 실행창에 제가 다 한번씩 실행시켰으니 이해 되실겁니다!
그리고, 한번에 여러 개의 숫자나 문자를 넣어보고 싶다? 그럴땐 c()를 이용하면 됩니다.
이 때, c는 combine을 뜻합니다.
b<-c(1,2,3,4,5) Numeric이니까 "" 따옴표 처리는 하지 않습니다.
이렇게 b라는 변수에 1,2,3,4,5를 콤바인 해서 넣고 싶다! 하면 저렇게 쳐주면 됩니다.
그리고 b를 다시 실행시키면
[1] 1 2 3 4 5
라고 뜹니다. 제가 지정한 1,2,3,4,5가 모두 b 안에 들어가게 되었습니다.
참고로, 이 앞의 [1]은 Vector의 순서를 나타냅니다. 즉 [1] 1 2 3 4 5 일 때 5는 5번째 벡터가 되는 거겠죠!
R에서는 기본적으로 벡터처리를 합니다. 그리고, 대소문자를 구별합니다. 이게 중요합니다. 대소문자 구별하기 때문에,
V<- 1이라고 지정했을지라도 v를 쳐서 확인해보면 에러가 나게됩니다. V라고 쳐서 실행해줘야 1이라고 R에서 알려주게됩니다.
오늘은 기본적으로 R이란 무엇인가? R에서의 기본적인 내용을 다뤄봤는데요! 하아~ 복잡하지 않습니다.. 몇번 해보시면 너무 쉽네?? 하실지도 모릅니다. 제가 너무 커리큘럼을 가지고 말하는게 아니라, 제가 알고있는 것들을 막 이것저것 알려주다보니까, 조금 횡설수설, 보기도 힘들지도 모르겠지만, 나름대로 ㅠㅠ 띄어쓰기로서 가독성을 좋게 하고 있습니다..
다음에는 조금더 R 연산에 대해서 알아보겠습니다~!!
'## 오래된 게시글 (미관리) ## > R' 카테고리의 다른 글
6. R 행렬구조 (0) | 2018.11.20 |
---|---|
5. R 연산 연습 (0) | 2018.11.20 |
3. 분석 마스터 플랜 (0) | 2018.11.20 |
2. 분석 수행 전 단계 (0) | 2018.11.20 |
1. 빅데이터란 무엇일까? (0) | 2018.11.20 |