English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
함수는 함께 수행되는 명령어 집합입니다. R 언어는 많은 내장 함수를 제공하며, 자체로 함수를 생성할 수도 있습니다.
코드를 다른 함수로 나누는 방법은 사용자가 결정합니다. 그러나 논리적으로, 각 함수가 특정 작업을 수행하도록 나누는 것이 일반적입니다.
함수선언컴파일러에게 함수 이름, 반환 타입 및 매개변수를 알립니다. 함수정의함수의 실제 본문을 제공합니다.
R 언어에서 함수는 객체이며, 속성을 가질 수 있습니다.
R 언어에서 함수 정의는 function 키워드를 사용하며, 일반 형식은 다음과 같습니다:
function_name <- function(arg_1, arg_2, ...) { // 함수 본문 }
설명:
function_name : 함수 이름
arg_1, arg_2, ... : 매개변수 목록
함수의 반환 값을 return()를 사용하여 정의합니다.
R 언어는 많은 유용한 내장 함수를 제공하며, 정의하지 않아도 바로 사용할 수 있습니다.
예를 들어: seq(), mean(), max(), sum(x) 및 paste(...) 등이 있습니다.
# 출력 32 까지 44 까지의 모든 숫자 print(seq(32,44)) # 두 수의 평균 계산 print(mean(25:82)) # 계산 41 까지 68 모든 숫자의 합 print(sum(41:68))
위의 코드를 실행하면, 출력 결과는 다음과 같습니다:
[1] 32 33 34 35 36 37 38 39 40 41 42 43 44 [1] 53.5 [1] 1526
자체로 함수를 생성할 수 있습니다. 특정 기능을 위해 사용하고 정의 후 내장 함수와 같이 사용할 수 있습니다.
함수를 어떻게 정의할지 보여드리겠습니다:
# 함수 정의, 시리즈를 제곱 값으로 계산하는 함수 new.function <- function(a) { for(i in 1:a) { b <- i^2 print(b) } }
함수를 호출할 수 있습니다:
new.function <- function(a) { for(i in 1:a) { b <- i^2 print(b) } } # 함수 호출 및 매개변수 전달 new.function(6)
위의 코드를 실행하면, 출력 결과는 다음과 같습니다:
[1] 1 [1] 4 [1] 9 [1] 16 [1] 25 [1] 36
함수를 매개변수 없이 생성할 수도 있습니다:
new.function <- function() { for(i in 1:5) { print(i^2) } } # 함수 호출, 매개변수 전달하지 않음 new.function()
위의 코드를 실행하면, 출력 결과는 다음과 같습니다:
[1] 1 [1] 4 [1] 9 [1] 16 [1] 25
함수 매개변수는 함수 생성 시 순서대로 전달할 수도 있으며, 순서대로 전달하지 않더라도 매개변수 이름을 지정해야 합니다:
# 함수 생성 new.function <- function(a,b,c) { result <- a * b + c print(result) } # 매개변수 이름 미포함 new.function(5,3,11) # 매개변수 이름 포함 new.function(a = 11, b = 5, c = 3)
위의 코드를 실행하면, 출력 결과는 다음과 같습니다:
[1] 26 [1] 58
함수 생성 시 매개변수에 기본 값을 지정할 수도 있으며, 매개변수를 전달하지 않으면 기본 값을 사용합니다:
# 기본 매개변수를 가진 함수 생성 new.function <- function(a = 3, b = 6) { result <- a * b print(result) } # 함수 호출, 매개변수 전달하지 않음, 기본값 사용 new.function() # 함수 호출, 매개변수 전달 new.function(9,5)
위의 코드를 실행하면, 출력 결과는 다음과 같습니다:
[1] 18 [1] 45
지연 계산은 계산 작업을 시스템이 필요한 계산 결과를 필요로 할 때까지 지연시킵니다. 필요하지 않으면 계산을 수행하지 않습니다.
기본적으로, R 함수는 매개변수 계산을 지연하여, 우리가 계산할 때까지 호출됩니다:
f <- function(x) { 10 } f()
위의 코드를 실행하면, 출력 결과는 다음과 같습니다:
[1] 10
위의 코드를 실행하면 오류가 발생하지 않습니다.参数을 전달하지 않았지만, 함수 내에서는 매개변수 x를 사용하지 않기 때문에, 그를 호출하지 않고 오류가 발생하지 않습니다.
new.function <- function(a, b) { print(a^2) print(a) print(b) # b를 사용하지만 전달하지 않았기 때문에 오류가 발생합니다 } # 매개변수를 전달 new.function(6)
위의 코드를 실행하면, 출력 결과는 다음과 같습니다:
[1] 36 [1] 6 Error in print(b) : 빠진 매개변수"b",도 기본 값이 없음 Calls: new.function -> print 실행 중지