Summary : 다음을 R을 통하여 실습합니다. (1) R 활용하기 (2) Survival analysis를 위한 R의 기본 문법 (3) R markdown

R 활용하기

R Programming에 관한 자료들이 상당히 많습니다. R Cookbook, The Art of R Programming과 같은 세련된 유료 컨텐츠들이 있습니다만, 그에 상응하는 수준의 무료 컨텐츠가 많습니다. 시간이 허락한다면 http://www.r-project.org의 ‘Manuals’ 코너를 한 번 둘러보길 추천 합니다.

  1. R 기초입문 (저자 미상, 한국어) : http://xmlarchive.org/hrc/wp-content/uploads/2012/12/r_book_mac_v3.pdf

-> R 입문에 좋은 재료입니다. (아래 R 기본 문법은 여기서 참고 했습니다.)

  1. R reference card (Tom Short 저술, 영어) : http://cran.r-project.org/doc/contrib/Short-refcard.pdf

-> 아주 유용한 함수들과 간략한 설명이 있습니다.

참고로 Survival analysis를 위한 자료는 다음을 추천합니다.

  1. R Package ‘survival’ 공식 설명서 (Terry Therneau 저술, 영어) : http://cran.r-project.org/web/packages/survival/survival.pdf

-> 필요하실 때 마다 찾아보시면 될 듯 합니다.

  1. http://anson.ucdavis.edu/~hiwang/teaching/11fall/R_tutorial%204.pdf

-> 구글에서 검색한 자료인데 상당히 좋습니다. (앞으로 실습 시간에 많은 부분을 참고할 예정입니다.)

Survival analysis를 위한 R 기본 문법

  1. Scrpit, Console, Prompt의 개념 알기.

  2. 산술연산

R에서는 계산기로서의 산술연산을 할 수 있습니다.

3 + 2; #더하기
3 - 2; #빼기
3 * 2; #곱하기
3 / 2; #나누기
3 ^ 2; #제곱
9 %% 2; #나머지
exp(1); #지수함수
log10(1000); #로그함수
  1. 논리연산

결과가 TRUE or FALSE인 논리연산을 할 수 있습니다. 나중에 if 문을 작성할 때 논리를 작성할 때 유용합니다.

5 < 5; #크기비교 1
5 <= 5; #크기비교 2
5 > 5; #크기비교 3
5 >= 5; #크기비교 4
5 == 5; #동등비교 1
5 != 5; #동등비교 2
x <- TRUE; y = FALSE; #T/F 할당
x | y; #OR 함수
x & y; #AND 함수
isTRUE(x); #TRUE 확인 함
  1. Vector와 Matrix: 정의와 계산해봅시다.
my.vector.1 = c(1,2,3,4,5,6);
my.vector.2 = 1:6;
my.vector.3 = seq(1,6);
my.vector.4 = rep(1,6);
my.vector.1;my.vector.2;my.vector.3;my.vector.4;
length(my.vector.1); #vector 길이
my.vector.1[3]; #vector index 이용하기1
my.vector.1[c(2,4,6)]; #vector index 이용하기2
my.vector.1[-c(2,4,6)]; #vector index 이용하기3

my.matrix.1 = matrix(my.vector.1, nrow=2); #Matrix 만들기1
my.matrix.2 = matrix(my.vector.1, nrow=3); #Matrix 만들기2
my.matrix.1;my.matrix.2;t(my.matrix.1);
dim(my.matrix.1); #Matrix 크기 확인1
nrow(my.matrix.1); #Matrix 크기 확인2
ncol(my.matrix.1); #Matrix 크기 확인3

my.matrix.1 * 2; #Matrix 연산1
my.matrix.1 * my.matrix.1; #Matrix 연산2
my.matrix.1 %*% my.matrix.2; #Matrix 연산3
  1. List형 변수: 자주 사용하는 lm같은 fitting의 결과물은 List형태의 결과가 많습니다. 각 원소에 어떤 형태의 원소도 넣을 수 있기 때문에 매우 편리합니다.(하지만 호환성에 불편함은 있습니다.)
name <- c("철수", "영희", "길동")
age <- c(21, 20, 31)
gender <- factor(c("M", "F", "M"))
my.list = list(name, age, gender, 1:7)
my.list[[1]];my.list[[2]];my.list[[3]];my.list[[4]];
my.list[[1]][2];
  1. Dataframe형 변수: List형 변수와 비슷하지만 벡터의 길이가 같아야 한다는 제한이 있습니다.
character <- data.frame(name, age, gender)
character;character$name;character$age;character$gender;

character[character$gender == "F", ];
character[character$age < 30 & character$gender=="M", ];

Question, 남자 데이터는 어떻게 가져올 수 있을까요?

  1. Plot으로 그래프 그리기: option이 너무 많아서…
str(Puromycin)
PuroTrt <- subset(Puromycin, state=="treated")
PuroUnTrt <- subset(Puromycin, state=="untreated")
plot(rate ~ conc, data=PuroTrt);

plot(rate ~ conc, data=PuroTrt, xlim=c(0, 1.2), ylim=c(40, 210), xlab="concentration(ppm)", ylab="rates(counts/min/min)", cex.lab=1.2)

plot(rate ~ conc, data=PuroTrt, pch=16, col=3, cex=1.5)
legend("bottomright", col=3, pch=16, "green point") ; 

par(mfrow=c(1, 3))
plot(rate ~ conc, data=PuroTrt, type="p");
plot(rate ~ conc, data=PuroTrt, type="l");
plot(rate ~ conc, data=PuroTrt, type="b");

R markdown

R markdown은 R code와 설명을 pdf나 html 파일과 같이 통합된 문서로 만드는 것을 도와줍니다. 기존의 R-Gui 환경에서 문서 작성은 꽤 직관적이지 못했습니다만, RStudio에서는 knitr라는 Package를 이용하여 손쉽게 만들 수 있습니다. 자세한 설명은 아래의 홈페이지로 대신하고, 수업시간에 예제를 다루겠습니다.

  1. http://rmarkdown.rstudio.com/

-> 빠른 영문 자료

  1. http://ko.wikipedia.org/wiki/%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4

-> 빠른 한글 자료

Disclaimer : 이 자료는 최영근 조교님의 2013년 가을 Survival anlysis 실습 수업자료를 바탕으로 만들어졌습니다.