반응형
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을 사용하였을 때 코딩이 훨씬 간단하다는 것을 알 수 있습니다.
반응형
'R' 카테고리의 다른 글
[R] Aggregate, Order&Sort (0) | 2022.07.21 |
---|---|
[R] String Concatenation (paste, paste0, gsub) (0) | 2022.06.28 |
[R] Finding, Dividing values (which, cut, quantile) (0) | 2022.06.28 |
[R] DataFrame Manipulation(split, subset, merge) (0) | 2022.06.28 |
[R] Matrix, Dataframe, List (0) | 2022.06.27 |