R 프로그래밍 소개와 이해- 1





R 프로그래밍은 뉴질랜드 오클랜드 대학에서 1993년에 개발된  통계와 그래픽을 위한 오픈 소스 프로그래밍 언어입니다.
통계를 이용하는 연구원이나 데이터 과학자들이 많이 사용하는 것으로 알려져 있습니다.
다양한 최신 통계분석과 마이닝 기능을 제공하고 데이터 시각화를 매우 쉽게 할 수 있는 장점을 가지고 있습니다.
반면에 R의 단점으로는 빅 데이터 집합을 사용한 작업을 수행할 시의 속도 문제와 메모리 관리에 신경을 써야한 다는 점과 한글 인식에 문제점 있다는 것 입니다.

R 프로그래밍 환경설정

https://cran.r-project.org/ 사이트로 접속하여 Download R for Windows 링크를 클릭합니다.

R프로그래밍1

이어서 나오는 화면 상단에서 install R for the first time. 링크를 클릭합니다.

R2

다음 화면 상단에서 최신버전을 다운로드 받은 후 설치파일을 실행하여 설치 합니다.

R3

그 다음 R Studio를 설치하여야 합니다.

https://www.rstudio.com/products/rstudio/download/ 사이트로 접속한 후 RStudio Desktop Free 다운로드 버튼을 클릭합니다.

R4

다음화면에서 DOWNLOAD RSTUDIO FOR WINDOWS 버튼을 클릭하여 설치파일을 다운로드 받은 후 설치합니다.

설치가 끝나고 RSTUDIO를 실행하게 되면 다음과 같은 화면이 나타납니다.

R5

RStudio의 초기화면은 크게 3분류의 창으로 나뉘어져 있는데 왼쪽에 명령어 코드를 작성할 수 있는 Console 창, 오른쪽 상단의 결과데이터를 메모리에 가지고있는 Environment 창, 오른쪽 하단에 결과 데이터를 시각적으로 보여줄 수 있는 Plot 창이 대표적입니다.

R 프로그래밍 변수정의

간단하게 Console 창에서 변수(variable)에 데이터를 정의해보도록 합니다.
R6

화면과 같이 변수 test,2,3 에 각각 데이터를 정의하게 되면 우측 Environment 창에 각 변수에 대입되어있는 데이터를 보여주게 됩니다.

변수명은 알파벳, 숫자, ‘_‘ (under bar), ‘.’ (dot)로 구성되며 첫 글자는 반드시 문자나 ‘.’ 으로 시작하여야 하고 대입 연산자 (‘<-’ or ‘=‘)를 이용하여 값을 대입시킵니다.

Console 창에서 Ctrl + L 키로 화면을 깨끗하게 클리어한 후 class(), typeof(), mode() 명령으로 지정했던 변수들의 자료형을 확인 할 수 있습니다.

R7

 

이와 연관 되어 자료형 변환은 as.integer(), as.character() 와 같이 as.자료형(변수) 형태로 변환이 가능합니다.

R8

특수한 형태의 값

여기서 특수한 형태의 값이라 함은 계산식이 실행될때 변수에 담긴 값이 정상적인 값이 아니라는 의미로 여러가지 형태로 나타납니다.

첫번째, NA (Not Available)는 값이 없음을 의미하는 결측값으로 주로 범위를 벗어낫을 경우 많이 나타나게 됩니다.

두번째, NULL은 값이 없는 빈 공간을 의미합니다.

세번째, NaN(Not a Number)는 수학적으로 정의되지 않는 값으로써 0을 0으로 나누는(0/0) 형태가 대표적인 예라고 할 수 있습니다.

네번째, Inf (infinite) 혹은 -Inf 은 해당 계산식이 무한대 결과값으로 나오면 경우로 1을 0으로 나누는(0/1) 형태가 대표적인 예라고 할 수 있습니다.



벡터(Vector)

벡터는 R 프로그래밍에서 기본이 되는 자료구조로서 배열처럼 동일한 자료형의 데이터를 일렬로 나열한 형태의 자료구조입니다.

c(값1,값2,..)  식으로 정의할 수 있으며 연속된 정수 일 경우 c(1:10) 로 선언하게 되면 1부터 10까지 차례대로 데이터가 들어가게 됩니다.

각 원소에 접근하는 방법은 벡터명[index]으로 해당 데이터를 조회 할 수 있습니다.  여타 보통의 프로그래밍 언어와는 달리 첫번째 요소는 0이 아니라 1로 시작됩니다.

R프로그래밍9

seq와 rep 함수로도 벡터를 정의 할 수 있습니다.

연속된 값을 저장할 경우 간격을 설정 할 필요가 있을 때 seq(from=시작값,to=종료값,by=간격값) 형태로 쓸 수 있습니다.

rep는 같은 값을 반복해서 정의 할때 사용되며 rep(값, times=반복횟수) 형식입니다.

아래 그림은 각각의 사용법을 나타내고 있습니다.

R프로그래밍10

리스트(List)

리스트는 단일한 자료형으로 구성해야 하는 벡터와 달리 어떠한 자료형도 원소로 올 수 있습니다.

그러므로 리스트를 원소로 갖는 리스트도 정의가 가능합니다.

리스트를 정의하고 Environment 창의 해당 데이터 목록을 보게 되면 List of 데이터갯수 형식으로 해당 리스트에 들어있는 값의 갯수를 알 수 있으며 돋보기를 클릭하게되면 안에 들어가 있는 상세 데이터들을 조회할 수 있습니다.

리스트 내 값을 콘솔창에서 조회하기 위해서는 리스트명[[index]] 으로 접근할 수 있습니다.

R프로그래밍11

데이터프레임(Dataframe)

데이터프레임은 2차원 형태의 데이터 구조를 가지고 있으며 데이터베이스 시스템의 Table구조와 유사합니다.

벡터들의 집합개념으로 각 벡터들은 데이터 프레임의 열을 이루는 구조로 되어있습니다.

데이터 프레임의 데이터에 접근하는 방법은  데이터프레임명$col명 혹은 데이터프레임명[i, j] 형식으로 조회할 수 있습니다.

아래 내용은 name이라는 벡터와 score라는 벡터를 정의하고 두 벡터를 grade 이름의 데이터프레임으로 정의하는 모습입니다.

Environment 창에는 grade가 각기 3개의 값과 두 개의 벡터변수(name,score) 로 구성되어져 있다는 것을 알 수 있으며 오른쪽 표 모양의 아이콘을 클릭하게 되면 값이 지정되어있는 테이블을 표형식으로 조회 할 수 있습니다.

R프로그래밍12

콘솔창에서 데이터구조를 알고 싶을 경우는 str(데이터프레임명)으로 전체적인 내용을 확인 할 수 있으며 summary(데이터프레임명) 으로 값들의 자료형이나 최대 최소값 등의 요약정보를 볼 수 있습니다.

R프로그래밍13

위 화면에서의 grade 같은 데이터프레임의 컬럼명들을 알고 싶을 경우에는 colnames(데이터프레임명), names(데이터프레임명)으로 파악할 수 있습니다.

 

 

댓글 남기기