{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE)
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
{r cars} summary(cars)
You can also embed plots, for example:
{r pressure, echo=FALSE} plot(pressure)
Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot. ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE)
``` #### #### R의 기본연산 ####
2+3 [1] 5 (3+6)*8 [1] 72 2^3 # 2의 세제곱 [1] 8
7+4 [1] 11 # 2^3
log(10)+5 # 로그함수 [1] 7.302585 sqrt(25) # 제곱근 [1] 5 max(5,3,2) # 가장 큰 값 [1] 5
a <- 10 b <- 20
c <- a+b print(c) [1] 30
a <- 125 a
[1] 125 print(a) [1] 125
a <- 10 # a에 숫자 저장 b <- 20 a+b # a+b의 결과 출력 [1] 30 a <- “A” # a에 문자 저장 a+b # a+b의 결과 출력. 에러 발생 Error in a + b : 이항연산자에 수치가 아닌 인수입니다
x <- c(1,2,3) # 숫자형 벡터 y <- c(“a”,“b”,“c”) # 문자형 벡터 z <- c(TRUE,TRUE, FALSE, TRUE) # 논리형 벡터 x # x에 저장된 값을 출력 [1] 1 2 3 y [1] “a” “b” “c” z [1] TRUE TRUE FALSE TRUE
w <- c(1,2,3, “a”,“b”,“c”) w [1] “1” “2” “3” “a” “b” “c”
v1 <- 50:90 v1 [1] 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 [23] 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 v2 <- c(1,2,5, 50:90)
v2 [1] 1 2 5 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 [23] 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
v3 <- seq(1,101,3)
v3 [1] 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 [18] 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 v4 <- seq(0.1,1.0,0.1)
v4 [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
v5 <- rep(1,times=5) # 1을 5번 반복 v5 [1] 1 1 1 1 1 v6 <- rep(1:5,times=3) # 1에서 5까지 3번 반복 v6 [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 v7 <- rep(c(1,5,9), times=3) # 1, 5, 9를 3번 반복 v7 [1] 1 5 9 1 5 9 1 5 9
score <- c(90,85,70) # 성적 score [1] 90 85 70 names(score) # score에 저장된 값들의 이름을 보이시오 NULL names(score) <- c(“John”,“Tom”,“Jane”) # 값들에 이름을 부여 names(score) # score에 저장된 값들의 이름을 보이시오 [1] “John” “Tom” “Jane” score # 이름과 함께 값이 출력
John Tom Jane 90 85 70
d <- c(1,4,3,7,8) d[1] [1] 1 d[2] [1] 4 d[3] [1] 3 d[4] [1] 7 d[5] [1] 8 d[6] [1] NA
d <- c(1,4,3,7,8) d[c(1,3,5)] # 1, 3, 5번째 값 출력 [1] 1 3 8 d[1:3] # 처음 세 개의 값 출력 [1] 1 4 3 d[seq(1,5,2)] # 홀수 번째 값 출력 [1] 1 3 8 d[-2] # 2번째 값 제외하고 출력 [1] 1 3 7 8 d[-c(3:5)] # 3~5번째 값은 제외하고 출력 [1] 1 4
GNP <- c(2090,2450,960) GNP [1] 2090 2450 960 names(GNP) <- c(“Korea”,“Japan”,“Nepal”) GNP Korea Japan Nepal 2090 2450 960 GNP[1] Korea 2090 GNP[“Korea”] Korea 2090 GNP[c(“Korea”,“Nepal”)]
Korea Nepal 2090 960
v1 <- c(1,5,7,8,9) v1 [1] 1 5 7 8 9 v1[2] <- 3 # v1의 2번째 값을 3으로 변경 v1 [1] 1 3 7 8 9 v1[c(1,5)] <- c(10,20) # v1의 1, 5번째 값을 각각 10, 20으로 변경 v1 [1] 10 3 7 8 20
####벡터의 연산 ####
d <- c(1,4,3,7,8) 2d [1] 2 8 6 14 16 d-5 [1] -4 -1 -2 2 3 3d+4 [1] 7 16 13 25 28
x <- c(1,2,3) y <- c(4,5,6) x+y # 대응하는 원소끼리 더하여 출력 [1] 5 7 9 x*y # 대응하는 원소끼리 곱하여 출력 [1] 4 10 18 z <- x + y # x, y를 더하여 z에 저장 z [1] 5 7 9
d <- c(1,2,3,4,5,6,7,8,9,10) sum(d) # d에 포함된 값들의 합 [1] 55 sum(2*d) # d에 포함된 값들에 2를 곱한 후 합한 값 [1] 110 length(d) # d에 포함된 값들의 개수 [1] 10 mean(d[1:5]) # 1~5번째 값들의 평균 [1] 3 max(d) # d에 포함된 값들의 최댓값 [1] 10 min(d) # d에 포함된 값들의 최솟값 [1] 1 sort(d) # 오름차순 정렬 [1] 1 2 3 4 5 6 7 8 9 10 sort(d, decreasing = FALSE) # 오름차순 정렬 [1] 1 2 3 4 5 6 7 8 9 10 sort(d, decreasing = TRUE) # 내림차순 정렬 [1] 10 9 8 7 6 5 4 3 2 1 v1 <- median(d) v1 [1] 5.5 v2 <- sum(d)/length(d) v2 [1] 5.5
d <- c(1,2,3,4,5,6,7,8,9) d>=5 [1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE d[d>5] # 5보다 큰 값 [1] 6 7 8 9 sum(d>5) # 5보다 큰 값의 개수를 출력 [1] 4 sum(d[d>5]) # 5보다 큰 값의 합계를 출력 [1] 30 d==5 [1] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE condi <- d > 5 & d < 8 # 조건을 변수에 저장 d[condi] # 조건에 맞는 값들을 선택 [1] 6 7
bt <- c(‘A’, ‘B’, ‘B’, ‘O’, ‘AB’, ‘A’) # 문자형 벡터 bt 정의 bt.new <- factor(bt) # 팩터 bt.new 정의 bt # 벡터 bt의 내용 출력 [1] “A” “B” “B” “O” “AB” “A” bt.new # 팩터 bt.new의 내용 출력 [1] A B B O AB A Levels: A AB B O bt[5] # 벡터 bt의 5번째 값 출력 [1] “AB” bt.new[5] # 팩터 bt.new의 5번째 값 출력 [1] AB Levels: A AB B O levels(bt.new) # 팩터에 저장된 값의 종류를 출력 [1] “A” “AB” “B” “O” as.integer(bt.new) # 팩터의 문자값을 숫자로 바꾸어 출력 [1] 1 3 3 4 2 1 bt.new[7] <- ‘B’ # 팩터 bt.new의 7번째에 ‘B’ 저장 bt.new[8] <- ‘C’ # 팩터 bt.new의 8번째에 ‘C’ 저장 경고메시지(들): In [<-.factor(*tmp*, 8, value = “C”) : invalid factor level, NA generated bt.new # 팩터 bt.new의 내용 출력 [1] A B B O AB A B
ds <- c(90, 85, 70, 84) my.info <- list(name=‘Tom’, age=60, status=TRUE, score=ds) my.info # 리스트에 저장된 내용을 모두 출력 $name [1] “Tom”
$age [1] 60
$status [1] TRUE
$score [1] 90 85 70 84
my.info[[1]] # 리스트의 첫 번째 값을 출력 [1] “Tom” my.info$name # 리스트에서 값의 이름이 name인 값을 출력 [1] “Tom” my.info[[4]] # 리스트의 네 번째 값을 출력 [1] 90 85 70 84