Summary : 다음을 R을 통하여 실습합니다. (1) R 활용하기 (2) Survival analysis를 위한 R의 기본 문법 (3) R markdown
R Programming에 관한 자료들이 상당히 많습니다. R Cookbook, The Art of R Programming과 같은 세련된 유료 컨텐츠들이 있습니다만, 그에 상응하는 수준의 무료 컨텐츠가 많습니다. 시간이 허락한다면 http://www.r-project.org의 ‘Manuals’ 코너를 한 번 둘러보길 추천 합니다.
-> R 입문에 좋은 재료입니다. (아래 R 기본 문법은 여기서 참고 했습니다.)
-> 아주 유용한 함수들과 간략한 설명이 있습니다.
참고로 Survival analysis를 위한 자료는 다음을 추천합니다.
-> 필요하실 때 마다 찾아보시면 될 듯 합니다.
-> 구글에서 검색한 자료인데 상당히 좋습니다. (앞으로 실습 시간에 많은 부분을 참고할 예정입니다.)
Scrpit, Console, Prompt의 개념 알기.
산술연산
R에서는 계산기로서의 산술연산을 할 수 있습니다.
3 + 2; 3 - 2; 3 * 2; 3 / 2; 3 ^ 2;
## [1] 5
## [1] 1
## [1] 6
## [1] 1.5
## [1] 9
9 %% 2; 9 %/% 2;
## [1] 1
## [1] 4
exp(1);log10(1000)
## [1] 2.718
## [1] 3
결과가 TRUE or FALSE인 논리연산을 할 수 있습니다. 나중에 if 문을 작성할 때 논리를 작성할 때 유용합니다.
5 < 5;5 <= 5;5 > 5;5 >= 5;5 == 5;5 != 5;
## [1] FALSE
## [1] TRUE
## [1] FALSE
## [1] TRUE
## [1] TRUE
## [1] FALSE
x <- TRUE
y = FALSE
x | y;x & y;
## [1] TRUE
## [1] FALSE
isTRUE(x);
## [1] TRUE
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;
## [1] 1 2 3 4 5 6
## [1] 1 2 3 4 5 6
## [1] 1 2 3 4 5 6
## [1] 1 1 1 1 1 1
length(my.vector.1);my.vector.1[3];my.vector.1[c(2,4,6)];my.vector.1[-c(2,4,6)];
## [1] 6
## [1] 3
## [1] 2 4 6
## [1] 1 3 5
my.matrix.1 = matrix(my.vector.1, nrow=2)
my.matrix.2 = matrix(my.vector.1, nrow=3)
my.matrix.1;my.matrix.2;t(my.matrix.1);
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
## [,1] [,2]
## [1,] 1 4
## [2,] 2 5
## [3,] 3 6
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
## [3,] 5 6
dim(my.matrix.1);nrow(my.matrix.1);ncol(my.matrix.1)
## [1] 2 3
## [1] 2
## [1] 3
my.matrix.1 * 2
## [,1] [,2] [,3]
## [1,] 2 6 10
## [2,] 4 8 12
my.matrix.1 * my.matrix.1
## [,1] [,2] [,3]
## [1,] 1 9 25
## [2,] 4 16 36
my.matrix.1 %*% my.matrix.2
## [,1] [,2]
## [1,] 22 49
## [2,] 28 64
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]];
## [1] "철수" "영희" "길동"
## [1] 21 20 31
## [1] M F M
## Levels: F M
## [1] 1 2 3 4 5 6 7
my.list[[1]][2];
## [1] "영희"
character <- data.frame(name, age, gender)
character;character$name;character$age;character$gender;
## name age gender
## 1 철수 21 M
## 2 영희 20 F
## 3 길동 31 M
## [1] 철수 영희 길동
## Levels: 길동 영희 철수
## [1] 21 20 31
## [1] M F M
## Levels: F M
character[character$gender == "F", ];
## name age gender
## 2 영희 20 F
character[character$age < 30 & character$gender=="M", ];
## name age gender
## 1 철수 21 M
str(Puromycin)
## 'data.frame': 23 obs. of 3 variables:
## $ conc : num 0.02 0.02 0.06 0.06 0.11 0.11 0.22 0.22 0.56 0.56 ...
## $ rate : num 76 47 97 107 123 139 159 152 191 201 ...
## $ state: Factor w/ 2 levels "treated","untreated": 1 1 1 1 1 1 1 1 1 1 ...
## - attr(*, "reference")= chr "A1.3, p. 269"
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 code와 설명을 pdf나 html 파일과 같이 통합된 문서로 만드는 것을 도와줍니다. 기존의 R-Gui 환경에서 문서 작성은 꽤 직관적이지 못했습니다만, RStudio에서는 knitr라는 Package를 이용하여 손쉽게 만들 수 있습니다. 자세한 설명은 아래의 홈페이지로 대신하고, 수업시간에 예제를 다루겠습니다.
-> 빠른 영문 자료
-> 빠른 한글 자료
Disclaimer : 이 자료는 최영근 조교님의 2013년 가을 Survival anlysis 실습 수업자료를 바탕으로 만들어졌습니다.