GIST에서 공개하는 청년 AI. Big Data 아카데미 온라인 기초과정 빅데이터 분석과 R프로그래밍 강의를 참고하였다.
R Studio를 실행하여 실습을 해본다.
함수 생성
함수를 생성하고 사 옹해본다.
1
2
3
4
5
|
square<-function(x){
return(x*x)
}
square(9)
square(1:3)
|
cs |

함수를 생성하기 위해서는 " 함수 이름 <-function(입력 변수){ return 출력 값 } "으로 생성한다.
square 함수는 정사각형의 넓이를 구하는 함수로 변의 길이를 입력하면 넓이가 출력된다(제곱)
square(9)를 입력하면 변의 길이가 9인 정사각형의 넓이 이므로 9x9가 되어 81이 출력된다.
square(1:3)은 1부터 3까지 정사각형의 넓이 이므로 1,2,3의 제곱이 차례로 출력된다.
1
2
3
4
|
dif<-function(x,y){
return(x-y)
}
dif(20,10)
|
cs |

dif 함수는 두 변수의 차이 값을 출력하는 함수이다. 그러므로 입력 변수가 x, y 2개가 되고 출력은 x에서 y를 뺀 값이 출력될 것이다.
dif(20,10)은 20에서 10을 뺀 값이므로 10이 출력된다.
1
2
3
4
|
rootdif<-function(x,y){
return(sqrt(x-y))
}
rootdif(20,10)
|
cs |

rootdif 함수는 두 변수의 차이의 제곱근을 구하는 함수이다. 두 변수 x, y가 입력되면 출력은 x에서 y를 뺀 값에 sqrt함수를 사용한다. sqrt함수는 제곱근을 계산해주는 함수이다.
rootdif(20,10)은 20에서 10을 빼서 10이 나오고 이 10의 제곱근을 구하므로 3.162278이 나온다.
기존 함수의 코드
1
2
3
4
5
|
round
round(5.14846)
round(5.14846, 2)
round(rootdif(20,10))
round(rootdif(20,10),2)
|
cs |

round 함수는 소수점 자리를 조정해주는 함수로 소수점이 있는 숫자를 입력하고 몇 번째 자리까지 표현할 것인지를 입력하면 그에 맞추어 뒤의 소수점을 반올림하여 숫자를 출력해준다. 뒤에 옵션을 붙이지 않으면 default로 소수점 첫 번째 자리에서 반올림 한 값이 출력된다.
round(5.14846): 옵션이 없으므로 5가 출력된다.
round(5.14846, 2): 옵션이 2이므로 소수점 3번째 자리에서 반올림하여 출력된다. 5.15
round(rootdif(20,10)): 위에서 생성한 rootdif함수를 사용하였다. rootdif(20,10)은 두 수의 차이의 제곱근이므로 아까 출력하였던 3.162278이 나오고 이를 소수점을 없앴으니 3이 출력된다.
round(rootdif(20,10), 2): 같은 숫자에 2번째 자리까지 출력을 하니 3번째 자리에서 반올림하여 3.16이 출력된다.
for를 사용한 루프
for를 사용하면 정한 횟수만큼 반복할 수 있다.
1
2
3
4
5
6
7
|
sum=0
for (i in 1:10) {
if (i %% 2 == 0){
sum=sum+i
}
}
print(sum)
|
cs |

먼저 sum변수를 0으로 두었다. 이제 다음 줄의 반복문을 설명하면
for(i in 1:10): 10번 반복을 한다.
반복문 내부를 보면
if( i %% 2 == 0): "변수 i를 2로 나누었을 때 나머지가 0이다." 이는 짝수를 판별하기 위함이다. 위 조건을 만족하면 아래 코드를 실행시킨다.
sum = sum + i: sum함수에 현재 i 변수를 더한다.
이렇게 보면 1부터 10까지 존재하는 짝수들의 합을 구하는 코드임을 알 수 있다.
반복문이 종료되면 print(sum)으로 변수 sum을 출력한다.
두 번째 예제를 본다.
1
2
3
4
5
6
7
8
|
for (i in 1:10) {
i<-i+1
print(i)
if (i>5){
# stop loop after i>5
break
}
}
|
cs |

for( i in 1:10) { // 10번 반복을 한다.
i <-i+1 //i변수에 1을 더한다.
print(i) //i를 출력한다.
if( i>5) { //i가 5 이상이라면
break //반복문을 종료한다.
}
i가 1부터 하나씩 더해져 가는 상황에서 i가 5 이상이 되는 순간 반복문이 종료된다.
반복문에서 10번 반복을 실행하는 코드라도 break를 만나면 반복문이 종료된다.
while을 사용한 루프
1
2
|
y=0
while(y<5) { print( y<-y+1) }
|
cs |

while을 사용해서 반복문을 만들 수 있다. y=0로 변수 y를 0으로 생성하였다.
while(y <5): 변수 y가 5 이하가 될 때까지 반복한다.
print(y <-y+1): y에 1을 더하여 출력한다.
'R Programming' 카테고리의 다른 글
[R Programming] R 데이터 활용1 (subset, 내보내기) - Week 3-2 (0) | 2019.09.08 |
---|---|
[R Programming] R 데이터 생성 (불러들이기) - Week 3-1 (0) | 2019.09.07 |
[R Programming] 벡터와 행렬의 연산 - Week 2-3 (0) | 2019.09.05 |
[R Programming] 객체 이름 정의와 데이터 프레임 - Week 2-2 (0) | 2019.09.04 |
[R Programming] 벡터 및 행렬 생성 - Week 2-1 (0) | 2019.09.03 |