일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 영화 일기
- 영화
- 심리학
- 영화 해석
- 토양학
- 영화 리뷰
- 외생균근균
- 철학
- 갓생
- 에리히 프롬
- Rstuido
- 생물정보학
- R
- 더 웨일
- Cannon PowerShot G7 X Mark III
- 생명과학 균학 미생물학 Biology Mycology Microbiology
- 탐조
- 바운새
- 계묘년
- 토양미생물학
- 영화 후기
- 젖비단그물버섯
- 청도요
- RStudio
- 대학원생
- 파이썬
- 곤줄박이
- 둠칫새
- mushroom #mushrooms #mushroomhunting #mushroomphotos #mushroomphotography #mycology #mycologist #fungi #fungalecology #fungaldiversity #fantasticfungi #버섯 #탐균 #버섯탐사
- 코딩
- Today
- Total
워라밸 중독자
[R] 프로그래밍 - 조건문 및 반복문 (if, ifelse, for, while) 본문
프로그래밍이란?
컴퓨터가 문제를 해결할 수 있도록 절차를 서술하는 행위를 프로그래밍이라 함.
조건문
if ()
조건이 참이면 실행, 조건이 거짓이면 다른 실행
이 때 조건의 결과는 참/거짓으로 나와야 하므로 논리 연산자가 들어가야한다 (논리 연산자에 대한 설명은 아래 글 참고)
[R] 1차원 데이터 구조 - 벡터의 연산 (산술연산, 논리연산, 함수)
[R] 벡터(vector) 정의 및 생성 벡터(vector)란? 동일한 자료형(정수, 실수, 문자, 논리)의 값이 연속적으로 나열된 자료구조이다. 엑셀에서 '한 행'에 해당하며 일차원 데이터를 저장한다. 벡터 만들기
ufungi.tistory.com
if (조건) {조건이 참이면 실행} else {조건이 거짓이면 실행}
참고로 else 문은 없어도 실행된다.
if (조건) {
조건이 참이면 실행
}
# 또는
if (조건) {
조건이 참이면 실행
} else {
조건이 거짓이면 실행
}
1. 조건이 참일때
a <- 6
if (a>5){
print(a)
} else {
print(a*10)
print(a/10)
}
[1] 6
2. 조건이 거짓일때
a <- 4
if (a>5){
print(a)
} else {
print(a*10) #4*10
print(a/10) #4/10
}
[1] 40
[1] 0.4
3. 다중 조건 (else 문 생략)
a <- 10
b <- 20
# 두 가지 조건 전부 만족시 참
if (a > 5 & b > 5){
print(a+b)
}
[1] 30
# 두 가지 조건 중 하나만 만족해도 참
if (a > 5 | b > 30){
print(a+b)
}
[1] 30
ifelse ()
if, else를 합쳐서 간단하게 ifelse문으로 표현할 수 있다.
ifelse (조건, 조건이 참이면 실행, 조건이 거짓이면 실행)
a <- 10
b <- 20
ifelse(a > b, a, b)
[1] 20
a보다 b가 크므로 a > b는 거짓이고 따라서 b가 출력된다.
반복문
for ()
어떤 변수에 대한 특정 실행을 몇 번 반복할지 아는 경우 사용
for (변수 in 범위) {반복 실행할 작업}
for (i in 1:10) {
print(3*i)
}
[1] 3
[1] 6
[1] 9
[1] 12
[1] 15
[1] 18
[1] 21
[1] 24
[1] 27
[1] 30
print()는 하나의 숫자 또는 문자만 출력해주지만 cat()을 이용하면 다양한 문자를 포함시킬 수도 있다.
아래 예시에서는 위의 예시와 값은 같지만 콤마(,) 로 나눠진 순서대로 문자 또는 숫자가 출력되고 "\n"을 이용해 개행하였다.
for (i in 1:10) {
cat("3 *",i,"=",3*i,"\n")
}
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
3 * 10 = 30
아래 예시는 for 문 안에 새로운 변수를 추가하여 1부터 10까지의 합을 구해보았다.
* 변수 초기화의 필요성: sum의 값을 미리 지정해주지 않으면 error 발생!
# 1부터 10 까지 순차적으로 더하고 매번 출력
sum = 0
for(i in 1:10) {
sum <- sum + i
print(sum)
}
[1] 1
[1] 3
[1] 6
[1] 10
[1] 15
[1] 21
[1] 28
[1] 36
[1] 45
[1] 55
# 1부터 10 까지 순차적으로 더하고 마지막 값 출력
sum = 0
for(i in 1:10) {
sum <- sum + i
}
print(sum)
[1] 55
혼합: for () + if ()
for문과 if문을 함께 사용하면 특정 범위에서 특정 조건을 만족하는 변수들에 대해서만 특정 실행이 가능하다.
아래 예시는 1:15의 범위에 있는 변수들 중 짝수인 것들만 출력하도록 하였다.
for(i in 1:15) {
if(i%%2==0) {
print(i)}
}
[1] 2
[1] 4
[1] 6
[1] 8
[1] 10
[1] 12
[1] 14
while ()
while (변수 w/ 조건) {반복 실행할 작업}
조건이 참일 때 까지만 반복 수행하고 거짓이 나오면 stop. if 와 달리 반복 횟수에 변동이 있을 경우 사용.
아래 예시는 i = 1부터 시작하여 i가 5보다 작거나 같을 경우 출력하고 i에 1씩 계속 더해나가는 프로그램이다.
i <- 1
while (i<=5){
print(i)
i <- i+1
}
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5