R과 R Studio 를 설치하고 R 의 기본환경을 이해하기 위해 정리한다.
old version:
R 소개 R은 벨 연구소 Becker 등에 의해 개발됐던 S language 를 기반으로 통계 계산, 시각화를 위한 프로그래밍 언어를 포함한 개발환경이다. S language를 이용한 Insightful사의 S+는 S 언어를 이용한 상업용 소프트웨어이고, R은 공개소프트웨어 기반의 소프트웨어 이다.
예) Excel, SPSS, SAS, HLM, MPlus 등 통계 프로그램
R 학습 자료
K-MOOC: 데이터과학을 위한 R프로그래밍, 이혜선 (포항공과대학교)
R프로그래밍및실습, Jinseog Kim (동국대학교)
설치 R 프로그래밍 엔진은 R 을 다운로드하고 GUI 도구로 R Studio를 사용할 수 있다.
CRAN mirror http://r-project.org 에서 R Download 한다.
R Studio IDE
Old Version RStudio 설치
R 시작하기 R 은 console을 통해 프로그래밍을 하거나 외부 에디터에서 작성한 소스를 컴파일해서 실행 할 수 있다. R 엔진을 IDE 를 통해서 개발한 코드를 실행하고 테스트 할 수 있다.
macOS에서 R 시작시 다음 같은 경고를 보이면 macOS FAQ를 참고해 설정을 해주어야 한다. > [그림. ]
R과 R Studio 화면 R prompt R을 실행하면 명령 입력 프롬프트 > 을 볼 수 있다. 프롬프트에서 한 줄에 하나 혹은 한문장의 명령이 입력되고 실행된다.
1 2 3 4 5 6 7 > print( "Hello World" ) > Factorial( 10 ) > Rep( x= "hello" , times= 5 ) > Rep( times= 5 ) : Error…> Plot( 10 , 10 ) > Plot( c ( 5 , 7 ) , c ( 20 , 30 ) ) > Plot( runif( 100 ) , runif( 100 ) )
프롬프트 > 에 명령을 입력하고 엔터키를 실행이 되지만 코드 블럭 괄호((),{},[])가 닫히지 않으면 프롬프트에 + 에 연결해서 계속 입력할 수 있다.
1 2 3 4 5 6 7 [ Workspace loaded from ~ / work- R/ R기본사용/ .RData] > print( 'hello r studio' + 'greeting me' Error: unexpected string constant in : "print('hello r studio' 'greeting me'"
R Studio IDE
R Studio IDE에서 작성 가능한 R 프로그래맹 편집기 종류를 살펴보면,
R Notebook 코드 작성중 package 요구
R 이용 R 사용 환경에 도움이 되는 구성을 살펴보자
한글 폰트 지정 나눔고딕코딩 폰트를 다운받아 설치한다.
R 환경설정에서 Nanum font 사용한다.
help() 사용 R에서 도움말을 통해 함수, 형식, 등의 정보를 얻을 수 있다.
패키지를 로드하지 않은 함수의 도움말 보기
내가 얻은 패키지는 어떤 것인가?
1 > help( package= ”알고싶은 패키지명”)
주요 도움말 명령 사용
1 2 3 4 5 6 7 8 9 10 > help( ) > help( ls) > ? ls > help( ">" ) > help( "for" ) > > help( package= "datasets" ) > > help.search( "Latex" ) > ? ? "Latex"
샘플로 제공하는 예제를 사용할 수 있도록 검색을 지원한다.
1 2 3 4 5 6 7 > example( "formula" ) formul> class ( fo <- y ~ x1* x2) [ 1 ] "formula" formul> fo y ~ x1 * x2
object R은 동적 객체 방식을 사용한다. 아래는 hello 변수를 선언하고 값을 대입한다. 이렇게 대입되면 R에서 객체로 다뤄진다.
1 2 3 > hello <- “안녕하세요" #유니코드 문자열 > hello [1] “안녕하세요"
동적 객체이기 때문에 새로운 변수 값을 대입할 수 있다.
1 2 3 > hello <- 100 + 200 > hello[ 1 ] 300
숫자형식의 데이터를 가지고 문자형으로 다시 대입할 수 있다.
1 2 3 > hello <- 'this is a text' > hello[ 1 ] "this is a text"
객체와 객체를 이용해서 연산도 할 수 있다.
1 2 3 4 > test1 <- 1> test2 <- 2> test1 + test2[ ] 3
논리형식의 데이터를 이용해 참/거짓을 이용할 수 있다.
1 2 > Object1 <- TRUE > Object2 <- FALSE
ls() : 객체 목록ls()는 사용한 객체들의 목록을 반환해 준다.
1 2 3 > x <- 1> y <- 1: 10 > ls( )
rm(): R 객체를 삭제1 2 3 4 > x <- 1> y <- 1: 10 > rm( x, y) > ls( )
Workspace R에서 작업공간(workspace)에 사용자가 R을 이용하여 수행하는 자료와 분석 프로시져 등을 포함하게 된다.
getwd(): 현재 워크스페이스 경로
setwd(PATH): 지정한 PATH로 현재 워크스페이스를 지정한다.
list.files(PATH): 경로의 파일 목록을 반환
객체 저장 작업공간은 저장할 수 있다. 저장을 실행하면 작업 디렉토리에 .RData 라는 파일이 생성된다.
1 2 > help( "save.image" ) > save.image( )
R의 종료를 위해서는 명령문 프롬프트에서 **q()**를 실행하던가 메뉴로부터 “종료”를 선택한다. 종료시 워크스페이스에 작업된 자료를 저장할 수 있다.
R패키지: R의 확장기능 이용 search()는 설치된 R패키지들을 확인하는 명령
library(): R에 설치된 모든 패키지 및 설명 library() 명령은 라이브러리를 현재 환경에 로딩해 준다.
1 2 library() library(package_name): 패키지를 현재 R세션으로 로딩
예를 들어 MASS 패키지를 로딩하는 명령을 보자
새로운 패키지를 설치할 수 있다.
1 install.packages(): R에 새로운 패키지 설치
stringr 패키지를 설치한다.
1 install.packages( "stringr" )
R 객체 이용하기 R 객체에는 아래와 같은 종류들이 있음
atomic(상수)
vector(벡터)
matrix(행렬)
list(리스트)
data.frame(데이터프레임)
function(함수)
operator(연산자) …
데이터 객체 (data object): R 객체 중 데이터 객체 : atomic, vector, matrix, data.frame
객체의 이름 객체명 표시방법: 알파벳문자, ’_‘,’.’, 숫자의 조합
주석 한 줄을 인터프리터가 해석하지 않고 패스하는 라인 코멘트(주석문) # 를 사용한다
벡터 R의 최소 단위는 벡터
정수(1), 실수(5.8271), 문자(‘A’) 문자열(“hello”)는 스칼라이다. 벡터는 {1,2,3,4,5,6}과 같이 스칼라가 여러 개 모인 것이이다.
한 개의 스칼라 값을 가진 벡터를 선언한다.
객체에 다른 객체 넣기
1 2 3 4 5 6 7 > object1 <- 1> object2 <- 2> object1[ 1 ] 1 > object1 <- object2> object1[ 1 ] 2
객체에 다른 객체 넣기
1 2 3 4 5 6 > object1 <- 1> object1 <- 2> object1 <- object2> object2 <- 100> object1[ 1 ] 2
함수 계산 결과를 객체에 넣기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 > Excel1 <- read.csv( “example_student.csv”) > Object1 <- sum ( 1 , 8 , 4 , 5 , 9 ) Object1 : 27 > A <- c ( 1 , 3 , 5 , 6 , 9 ) A : 1 , 3 , 5 , 6 , 9 > A <- 1Is.vector( a) : True A <- c ( 1 , 2 , 5 ) Is.vector( a) : True > A <- c ( “첫번째”, “두번째”, “세번째”) A : ? ? ?
Package 관리 외부에서 제공하는 모듈을 Install, Update, Library 명령으로 관리할 수 있다. 패키지 설치는 Install 그리고 사용할 때는 Library 명령을 사용하고 패키지 갱신에 Update 명령을 사용한다.
패키지 관리 패키지 설치과 업데이트
1 2 3 4 > install.packages( "패키지명" ) > library( "패키지명" ) > require( "패키지명" ) > update.packges( '패키지명' )
설치된 패키지 목록 보기 1 2 3 > Library( ) > installed.packages( ) > Install.packages( ) [ , c ( “Packages”, “version”, “License”) ]
필수 패키지 1 2 3 4 5 6 7 8 9 10 11 Install.packages(“rgl”) # 3D 그래프 보여주는 패키지 Install.packages(“ggplot2”) Install.packages(“ggthemes”) Install.packages(“data.table”) Install.packages(“devtools”) Install.packages(“KoNLP”) Install.packages(“dplyr”) Install.packages(“plyr”) Install.packages(“reshape2”) Install.packages(“scales”) Install.packages(“stringr”)
Github로 패키지 설치하기 개발자가 베타 버전을 github에 공개하는 경우 Knitr 패키지는 R에서 html, pdf, MS-Word 문서를 만들 수 있음고 https://github.com/yihui/knitr 에서 배포한다.
1 2 3 4 > Install.packages( “devtools”) Library( “devtools”) > install_github( “yihui/ knitr”)
RStudio UTF8 지원
참조