티스토리 뷰

1. 수치적 함수

  • pi : 원주율
  • 삼각함수
    • sin(x) : sin 함수
    • cos(x) : cosine 함수
    • tan(x) : tangent 함수
    • asin(x) : arcsin 함수
    • acos(x) : arccosine 함수
    • atan(x) : arctangent 함수
  • log(x) : 자연로그 함수
  • log10(x) : 상용로그 함수
  • exp(x) : 지수 로그 함수
  • sqrt(x) : 루트 함수
  • min(x) : 벡터에서 최솟값
  • max(x) : 벡터에서 최댓값
  • min(x1, x2, ...) : 전체 벡터 원소 중에서 최솟값
  • range(x) : 벡터의 범위 ( 최솟값과 최댓값 ) → c(min(x), max(x))
  • pmin(x1, x2) : 두 벡터의 상응하는 원소들 중 작은 값
  • pmax(x1, x2) : 두 벡터의 상응하는 원소들 중 큰 값

2. 통계 함수

  • R의 장점 중 한 가지는 다양한 통계 함수가 내장되어 있어서 기본적인 통계량 산출이 용이하다는 것
  • 종류
    • mean(x1) : 평균
    • sd(x1) : 표준 편차
    • var(x1) : 분산
    • median(x1) : 중앙값( 중위수 )
    • quantile(x, p) : (100*p)%에 해당하는 값
    • cor(x, y) : 상관 계수

3. 조건문

  • 조건문이란?
    • 특정한 조건을 만족했을 경우에만 프로그램 코드를 수행하는 제어 구문을 의미
    • 조건문에는 항상 논리 연산이 수반되며 조건문의 구체적인 표현식은 조건의 개수, 조건문의 위치, 조건에 따른 명령수행 방식 등에 따라 구분

4. if (조건) 실행문

  • 괄호안의 조건이 참이면 실행문을 수행하는 표현식
  • 실행문이 여러개일 경우 실행문을 대괄호( { } )로 묶어서 사용
  • 사용법
# x의 합이 y의 합보다 작을 때 x를 출력
> x <- c(1,2,3,4)
> y <- c(2,1,4,5)
> if(sum(x) < sum(y)) print(x) 
[1] 1 2 3 4

# x의 합이 y의 합보다 작으면 x의 평균과 분산을 출력
> if(sum(x) < sum(y)) {
+ print(mean(x))
+ print(var(x))
+ } 
[1] 2.5
[1] 1.66667

5. if (조건) else 조건 실행문

  • 괄호안의 조건이 참이면 참일 때의 실행문을 수행하고 거짓일 때는 참이 아닐 때의 실행문을 수행하는 표현식
  • 사용법
> x <- c(1,2,3,4)
> y <- c(2,1,4,5)
> if(mean(x)>mean(y)) print("Mean(x)>Mean(y)") else
+ print("Mean(x)<Mean(y)") # x의 평균이 y의 평균보다 크면
# "Mean(x)>Mean(y)" 출력
# x의 평균이 y의 평균보다 작으면
# "Mean(x)<Mean(y)" 출력
[1] "Mean(x)<Mean(y)"

6. 중첩 조건문

  • 조건문 내에 조건문이 위치하는 형태
  • 사용법
> x <- c(1,2,3,4)
> y <- c(2,1,4,5)
> if(length(x)==5) { # 외부 조건문
+ if(sum(x) == 10) print("length=5, sum=10") # 내부 조건문
+ } else {
+ print("length=4, sum=10")
+ }
[1] "length=4, sum=10“

> if(length(x)==4) { # 외부 조건문
+ if(sum(x) == 10) print("length=4, sum=10") else # 내부 조건문
+ print("length=5, sum=10")
+ }
[1] "length=4, sum=10"

7. ifelse 조건문

  • 조건문의 괄호 내에 조건, 조건이 참일때의 실행문, 조건이 참이 아닐때의 실행문이 모두 위치
  • ex ) ifelse ( 조건문, 참일때실행문, 거짓일때실행문 )
  • 사용법
> x <- c(1,2,3,4)
> y <- c(2,1,4,5)
> ifelse(x<y, x, y)
[1] 1 1 3 4

> ifelse(sum(x-y) > 0, "positive", ifelse(sum(x-y) < 0 , "negative", "zero"))
[1] "negative"

8. switch문

  • switch( 매개변수, 실행문1, 실행문2, .... )와 같이 사용
  • 매개변수의 값에 따라 조건에 맞는 실행문을 찾아 수행
  • 사용법
#  switch의 매개변수 값이 문자열을 갖는 경우
> x <- c(1,2,3,4)
> type<-"var"
> switch(type, mean=mean(x), median=median(x), sum=sum(x), var=var(x))
[1] 1.66667

# switch의 매개변수 값이 정수값을 갖는 경우
# switch문에서 매개변수값이 정수값을 갖게 되면 
# 이 정수값에 해당하는 순서의 실행문을 수행
> x <- c(1,2,3,4)
> switch(1, mean(x), sum(x), var(x))
[1] 2.5

9. for 반복문 (*)

  • for(변수 in 반복횟수) {실행문}과 같은 형태로서 대괄호 내에 위치한 실행문을 반복횟수만큼 실행하는 구문
  • 사용법
> for(i in 1:5) print(rep(i,i))
[1] 1
[1] 2 2
[1] 3 3 3
[1] 4 4 4 4
[1] 5 5 5 5 5

#  for 반복문을 실행하여 1에서 10까지 합을 구하기
> x<-0
> for(i in 1:10)
+ x <- x + i
> x
[1] 55

10. while 반복문

  • while(조건) {실행문}의 형태로 사용
  • 조건이 참일 때까지 실행문을 수행하는 반복문
    • 무한 루프로 실행되지 않도록 조심해야 한다.
  • 사용법
> i<-1
> while(i<=5) {
+ print(rep(i,i))
+ i<-i+1 # 1씩 증가시켜 자신에게 할당
+ } 
[1] 1
[1] 2 2
[1] 3 3 3
[1] 4 4 4 4
[1] 5 5 5 5 5

# while 반복문을 실행하여 1에서 10까지 합을 구하기
> i<-1
> x<-0
> while(i <= 10) {
+ x<-x + i
+ i<-i + 1
+ }
> x
[1] 55

11. repeat 반복문

  • repeat {실행문}과 같은 형태로 사용
  • 실행문을 계속 수행하다가 break를 만나면 반복 수행을 멈추고 작업을 종료
    • break문을 만나기 전까지 반복 수행
  • 사용법
> repeat {
+ if(i > 5) break
+ print(rep(i,i))
+ i<-i+1
+ }
[1] 1
[1] 2 2
[1] 3 3 3
[1] 4 4 4 4
[1] 5 5 5 5 5

# repeat 반복문을 실행하여 1에서 10까지 합을 구하기
> i<-1
> x<-0
> repeat {
+ if(i > 10) break
+ x<-x + i
+ i<-i + 1
+ }
> x
[1] 55

12. break 분기문

  • break 분기문은 루프를 탈출하는 제어문
  • 중첩 루프가 사용되었을 경우, break가 위치한 해당 루프에서만 빠져 나오게 된다는 점에 유의
  • 사용법
> x<-0
> for(i in 1:10) {
+ x <- x + i
# 만약 각 단계까지의 합계 x가 25보다 크다면
# break문을 수행하여 반복문을 벗어나게 됨
+ if(x > 25) break 
+ print(x)
+ }

#  for 반복문을 중첩 반복문 형태로 사용하여 아래와 같은 결과를 출력해 보기
> for(i in 1:9) {
+ if(i > 3) break
+ for(j in 1:9) {
+ if(j > 1) break
+ cat(i, "*", j, "=", i*j, " \n")
+ }
+ }
[1] 1 * 1 = 1
[1] 2 * 1 = 2
[1] 3 * 1 = 3

13. next 분기문

  • next는 break보다 더 강제적인 제어문
  • 반복문을 수행하더라도 조건을 충족하면 next 이후의 실행문을 수행하지 않고 계속 건너뛰게 됨
  • 사용법
> i<-1
> x<-0
> while(i < 10) {
+ i<-i+1
+ if(i<8) next # next 이후의 명령은 if문의 조건이 충족되는 한 미수행
+ print(i)
+ x<-x + i
+ }
[1] 8
[1] 9
[1] 10
728x90

'방송대 > R 컴퓨팅' 카테고리의 다른 글

9강. R 그래픽스I (1)  (0) 2025.04.17
8강. R 함수 만들기  (0) 2025.04.11
6강. R 프로그래밍의 기초 (1)  (0) 2025.04.10
5강. 데이터 구조 (2)  (0) 2025.03.23
4강. 데이터 구조 (1)  (0) 2025.03.15
댓글
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
최근에 올라온 글
Total
Today
Yesterday
공지사항