for 문
for 문은 특정 범위를 지정하여 실행하는 반복문이다. 기본 문법은 아래와 같다.
for (item in range) {
...
}
range 에는 벡터, 매트릭스, 배열, 리스트 등을 넣을 수 있다. 벡터, 매트릭스, 배열을 넣으면 각 값이 순차적으로, 즉 1열 1행부터 1열 2행 순으로 item 에 대입된다. 데이터프레임은 열 전체가, 리스트도 데이터 전체가 순차적으로 대입된다.
모든 데이터가 대입된 후 하위 코드, 즉 {} 안에 있는 코드가 모두 실행되었다면 종료된다.
while 문
while 문은 특정 조건을 지정하여 실행하는 반복문이다. 기본 문법은 아래와 같다.
while (condition) {
...
}
condition 이 TRUE 이면 while 문 하위 코드, 즉 {} 안에 있는 코드가 실행되고, 다시 조건을 검사하고, TRUE 이면 다시 실행하고를 반복한다. 참고로 0 이 외의 수는 모두 TRUE 로 인식한다. 또한 조건이 만족하면 무조건 코드를 실행하기 때문에 특정 조건에서 while 문을 탈출하도록 해주어야 무한 루프에 빠지지 않는다.
탈출 조건
반복문에서 특정 조건을 만족하면 반복문 자체를 종료시키거나, 이후 코드들을 무시하고 다음 루프로 건너뛸 수 있다. 이때 break 와 next 를 사용한다. next 는 다른 언어, C 와 파이썬 등에서 주로 쓰이는 continue 와 같은 역할을 한다. 즉 next 를 만나면 그 후 코드를 무시하고 다시 루프를 시작하는데, for 문에서는 범위가 끝났다면 반복문이 종료되고, while 문에서는 조건이 FALSE 라면 반복문이 종료된다. break 를 만나면 그 즉시 반복문을 탈출한다.
break 는 특히 무한 루프에서 탈출할 때 사용된다. 즉 while 문의 조건을 TRUE 로 설정하고, 원래 조건식을 if 문 안에 넣은 후 if 문 안에 break 를 넣어주면 된다. 이를 통해서 while 문 속 코드를 조건과 상관없이 일정 부분 실행시킬 수 있다.
apply
대부분은 반복문을 이용하는 것이 편리하지만, 데이터프레임이나 매트릭스에 전체 열, 혹은 행에 특정 함수를 적용하고 싶다면 apply 함수를 이용하면 편리하다. 특히 합, 평균 등을 구할 때 유용하다. 기본 문법은 아래와 같다.
apply(dataset, row_or_col, function_name)
dataset 에 데이터프레임이나 매트릭스를 넣고, row_or_col 부분은 행 방향 작업인 경우 1을, 열 방향 작업인 경우 2를 넣으면 된다. function_name 에 적용시킬 함수를 넣으면 된다. 기본 R 함수 뿐 아니라 사용자 정의 함수도 사용 가능하다.
예를 들어 R 기본 데이터셋인 iris 의 각 열의 평균을 구하기 위해 아래와 같이 apply 함수를 이용할 수 있다.
apply(iris[, 1:4], 2, mean)
출력은 다음과 같다.
Sepal.Length Sepal.Width Petal.Length Petal.Width
5.843333 3.057333 3.758000 1.199333
'Language > R' 카테고리의 다른 글
[R] 단일변수 탐색적 자료 분석(EDA) (0) | 2024.10.28 |
---|---|
[R] which 를 이용한 데이터 위치 확인 (0) | 2024.10.27 |
[R] 데이터 파일과 사용자 정의 함수 및 변수 불러오기 (0) | 2024.10.14 |
[R] 다양한 자료형(data type)과 인덱싱(indexing) (0) | 2024.10.14 |
[R] 기본 연산자 우선순위 (0) | 2024.09.03 |