티스토리 뷰
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 |
댓글