R

[R] Functions & Conditional, Iterative Statement(if,for) & Vectorized Operation

에릭 Kim 2022. 6. 29. 17:10
반응형

Function

 

  • 함수 (function)는 어떠한 동작을 자동으로 수행하는 루틴의 개념입니다. ex) print(), mean(), max(), etc.

입력 값을 주면, 함수를 거쳐 결과값으로 출력됩니다. 

 

  • R에서는 이미 존재하는 함수뿐만 아니라 사용자가 함수를 만들어서 사용할 수 있습니다. 
  • 함수를 만들어서 사용하는 것이 빈번하지는 않지만, 함수를 이해하기 위해서는 그 방식을 알고 있어야 할 필요가 있습니다.

 

FunctionName <- function(Parameter) {
	Operation
}

 

사용자 함수 예시 

 

 

  • 인수의 수가 명확하지 않을 경우에는 "..."을 사용할 수 있습니다. 

 

최댓값과 최소값을 찾고, 최댓값에서 최솟값을 뺸 값을 출력해주는 함수

 

 

If & If-else statement

 

  • condition부분에 조건을 주고, 조건에 따라 operation을 실행하는 함수입니다. 

 

if (condition) {
	operation
}

 

 

condition이 true이면 operation이 부분이 실행되고, true가 아니라면 아무런 값도 리턴되지 않습니다. 

 

if (condition) {
	operation 1
	} else {
    operation2
	}

 

 

condition이 if문에서 true가 아닐 경우에 else문에서 출력될 값을 설정해두었기에, if문이 true가 아니어도 결과값이 리턴됩니다. 

 

 

For statement

 

  • var in seq에는 반복가능한( iterative) 값이 들어가있어야 하고, operation이 실행됩니다. 

 

for(var in seq) {
	operation
}

 

 

foods 변수에서 선언해줬던 값들이 for문을 돌면서 하나씩 출력되는 방식입니다. 

 

 

 

If & For문 활용

 

 

nrow는 데이터의 행의 개수를 알려주는 함수입니다. 

1부터 mtcars데이터의 행의 개수만큼 반복문을 실행합니다.

만약 mtcars의 am이라는 변수의 값이 1이면 "manual", 1이 아니라면 "automatic"을 mtcars 데이터에 transmission 변수를 만들어(mtcars$transmission), 그 변수에 출력해줍니다. 

 

 

Vectorized Operation

 

  • if과 for문에 대하여 정석적인 방법을 사용하기 보다 효율적으로 사용할 수 있는 방법입니다. 

 

 

ifelse() function

 

  • test의 요소가 True인지 False인지에 따라 하나를 선택한 요소로 결과 값이 출력되는 함수입니다. 

 

 

 

 

if & for문을 클래식한 방식으로 코딩한 것과 vectorized operation으로 한 코딩을 비교해 보면

 

 

grade가 if & for문의 클래식한 방식으로 한 값이고, grade1이 vectorized operation을 사용한 값입니다.

결과를 확인해보면 값은 똑같이 나오지만 vectorized operation을 사용하였을 때 코딩이 훨씬 간단하다는 것을 알 수 있습니다.

 

 

반응형