반복문
- 문장을 반복 실행하는 경우에 사용
FOR문
# for 문 (for loop/statement) 형식
for (<var> in <interval>) { <repeated_work> }
# 설정한 변수 <var>가 지정된 구간 <interval>에서 변하면서
# 문장 <repeated_work>을 반복실행
# 반복문; for loop ----
for (i in 1:3) {
print(i)
}
for (i in c("a", "b", "c")){
print(i)
}
for(i in 5:3){
print(i)
}
# 반복문 : 1~1000합 구하기 ----
sss = 0
for(i in 1:100){
sss = sss + i
}
## exercise ----
x = 3
for(i in 1:5){
x = x*2
}
sss = 0
for(i in 100:200){
sss = sss + i
}
kk = 1
for(i in 1:10){
kk = kk*i
}
kk == factorial(10)
# 반복문: 정규분포 ----
vec = rnorm(100,7,3)
sum1 = 0
for(i in 1:length(vec)){
sum1 = sum1 + vec[i]
}
m = sum1/length(vec)
## exercise ----
vec2 = rnorm(100, 5, 2)
sum2 = 0
for(i in 1:length(vec2)){
sum2 = sum2 + vec2[i]
}
m2 = sum2/length(vec2)
sum3 = 0
for(i in 1:length(vec2)){
sum3 = sum3 + vec2[i]^2
}
var1 = (sum3 - length(vec2)*m2^2)/(length(vec2)-1)
var1
R에서의 반복문은 파이썬에서의 반복문과 조금 다를 뿐 원리는 비슷함.
WHILE문
# while문(while loop/statement)
while(<condition>) { <repeated_work> }
# 반복할 조건 <condition>의 참 거짓을 판별하여
# 참인 경우 문장 <repeated_work>을 반복 실행
# 주어진 조건을 만족하는 동안 무한 반복하기 때문에 예상과 달리 루프에 갇히게 되면 break해야함.
# 반복문: while문 ----
x = 3
while(x<1000){
x = x*2
}
print(x)
# 결과가 다르다는 걸 느끼기
# 1
i = 0
sss = 0
while(i <= 100){
i = i + 1
sss = sss + i
}
sss # 5151
# 2
i = 0; sss = 0
while(i <= 99){
i = i + 1
sss = sss + i
}
sss # 5050
# 3
i = 0; sss = 0
while(i <= 100){
sss = sss + i
i = i + 1
}
sss # 5050
# 100~200합 구하기
i = 100
sss = 0
while(i <= 200){
sss = sss + i
i = i + 1
}
sss
# 1부터 10까지의 곱과 factorial 비교
i = 1
sss = 1
while(i <= 10){
sss = sss*i
i = i + 1
}
sss == factorial(10)
# example
# 처음으로 합이 100을 넘기는 n값 찾기
n = 0 ; n.sum = 0
while(n.sum <= 100){
n = n + 1
n.sum = n.sum + n
}
## practice ----
n = 0
while(n.sum <= 100000){
n = n + 1
n.sum = n.sum + n
}
n = 0
n.fac = 1
while(n.fac <= 1000000){
n = n + 1
n.fac = n.fac * n
}
repeat문
# repeat문
repeat{<repeated_work>}
# 작업 <repeated_work>을 무한 반복하다가 break 조건을 만족하면 stop
# 반복문: repeat ----
n = 0
sss = 0
repeat{
n = n + 1
sss = sss + n
if (n >= 100) break
}
'프로그래밍 > R프로그래밍' 카테고리의 다른 글
R프로그래밍 - 오름차순 정렬 (0) | 2023.12.04 |
---|---|
R프로그래밍 - 사용자 정의 함수 (1) | 2023.11.22 |
R프로그래밍 - 난수발생 (0) | 2023.11.13 |
R프로그래밍 - 분포 관련 함수 (0) | 2023.11.08 |
R프로그래밍 - 이산확률분포, 연속확률분포 (0) | 2023.11.08 |