R 시작하기, 2022
R과 R Studio 를 설치하고 R 의 기본환경을 이해하기 위해 정리한다.
old version:
R 소개
R은 벨 연구소 Becker 등에 의해 개발됐던 S language를 기반으로 통계 계산, 시각화를 위한 프로그래밍 언어를 포함한 개발환경이다. S language를 이용한 Insightful사의 S+는 S 언어를 이용한 상업용 소프트웨어이고, R은 공개소프트웨어 기반의 소프트웨어 이다.
- 예) Excel, SPSS, SAS, HLM, MPlus 등 통계 프로그램
R 학습 자료
설치
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 | > print("Hello World") |
프롬프트 >
에 명령을 입력하고 엔터키를 실행이 되지만 코드 블럭 괄호((),{},[]
)가 닫히지 않으면 프롬프트에 +
에 연결해서 계속 입력할 수 있다.
1 | [Workspace loaded from ~/work-R/R기본사용/.RData] |
R Studio IDE
R Studio IDE에서 작성 가능한 R 프로그래맹 편집기 종류를 살펴보면,
R Notebook 코드 작성중 package 요구
R 이용
R 사용 환경에 도움이 되는 구성을 살펴보자
한글 폰트 지정
나눔고딕코딩 폰트를 다운받아 설치한다.
R 환경설정에서 Nanum font 사용한다.
help() 사용
R에서 도움말을 통해 함수, 형식, 등의 정보를 얻을 수 있다.
1 | > help(“함수명”) |
패키지를 로드하지 않은 함수의 도움말 보기
1 | > help.search(“함수명”) |
내가 얻은 패키지는 어떤 것인가?
1 | > help(package=”알고싶은 패키지명”) |
주요 도움말 명령 사용
1 | > help() # 도움말 창 |
샘플로 제공하는 예제를 사용할 수 있도록 검색을 지원한다.
1 | > example("formula") |
object
R은 동적 객체 방식을 사용한다. 아래는 hello 변수를 선언하고 값을 대입한다. 이렇게 대입되면 R에서 객체로 다뤄진다.
1 | > hello <- “안녕하세요" #유니코드 문자열 |
동적 객체이기 때문에 새로운 변수 값을 대입할 수 있다.
1 | > hello <- 100 + 200 |
숫자형식의 데이터를 가지고 문자형으로 다시 대입할 수 있다.
1 | > hello <- 'this is a text' |
객체와 객체를 이용해서 연산도 할 수 있다.
1 | > test1 <- 1 |
논리형식의 데이터를 이용해 참/거짓을 이용할 수 있다.
1 | > Object1 <- TRUE # 논리형 |
ls()
: 객체 목록
ls()
는 사용한 객체들의 목록을 반환해 준다.
1 | > x <- 1 |
rm()
: R 객체를 삭제
1 | > x <- 1 |
Workspace
R에서 작업공간(workspace)에 사용자가 R을 이용하여 수행하는 자료와 분석 프로시져 등을 포함하게 된다.
getwd()
: 현재 워크스페이스 경로setwd(PATH)
: 지정한 PATH로 현재 워크스페이스를 지정한다.list.files(PATH)
: 경로의 파일 목록을 반환
객체 저장
작업공간은 저장할 수 있다. 저장을 실행하면 작업 디렉토리에 .RData
라는 파일이 생성된다.
1 | > help("save.image") # 도움말을 살펴보며 진행 |
R의 종료를 위해서는 명령문 프롬프트에서 **q()**를 실행하던가 메뉴로부터 “종료”를 선택한다.
종료시 워크스페이스에 작업된 자료를 저장할 수 있다.
R패키지: R의 확장기능 이용
search()는 설치된 R패키지들을 확인하는 명령
1 | search() |
library(): R에 설치된 모든 패키지 및 설명
library() 명령은 라이브러리를 현재 환경에 로딩해 준다.
1 | library() |
예를 들어 MASS 패키지를 로딩하는 명령을 보자
1 | library(MASS) # 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
객체의 이름
객체명 표시방법: 알파벳문자, ’_‘,’.’, 숫자의 조합
주석
한 줄을 인터프리터가 해석하지 않고 패스하는 라인 코멘트(주석문) #
를 사용한다
1 | a <- 1 |
벡터
R의 최소 단위는 벡터
정수(1), 실수(5.8271), 문자(‘A’) 문자열(“hello”)는 스칼라이다.
벡터는 {1,2,3,4,5,6}과 같이 스칼라가 여러 개 모인 것이이다.
한 개의 스칼라 값을 가진 벡터를 선언한다.
1 | > a <- 5 |
객체에 다른 객체 넣기
1 | > object1 <- 1 |
객체에 다른 객체 넣기
1 | > object1 <- 1 |
함수 계산 결과를 객체에 넣기
1 | > Excel1 <- read.csv(“example_student.csv”) |
Package 관리
외부에서 제공하는 모듈을 Install, Update, Library 명령으로 관리할 수 있다. 패키지 설치는 Install 그리고 사용할 때는 Library 명령을 사용하고 패키지 갱신에 Update 명령을 사용한다.
패키지 관리
패키지 설치과 업데이트
1 | > install.packages("패키지명") # 패키지 설치 |
설치된 패키지 목록 보기
1 | > Library() |
필수 패키지
1 | Install.packages(“rgl”) # 3D 그래프 보여주는 패키지 |
Github로 패키지 설치하기
개발자가 베타 버전을 github에 공개하는 경우
Knitr 패키지는 R에서 html, pdf, MS-Word 문서를 만들 수 있음고 https://github.com/yihui/knitr 에서 배포한다.
1 | > Install.packages(“devtools”) |