R-기능

함수는 특정 작업을 수행하기 위해 함께 구성된 문 집합입니다. R에는 많은 내장 함수가 있으며 사용자는 자신의 함수를 만들 수 있습니다.

R에서 함수는 객체이므로 R 인터프리터는 함수가 작업을 수행하는 데 필요할 수있는 인수와 함께 제어를 함수에 전달할 수 있습니다.

함수는 그 작업을 수행하고 다른 객체에 저장 될 수있는 결과는 물론 인터프리터에게 제어를 반환합니다.

기능 정의

R 함수는 키워드를 사용하여 생성됩니다. function. R 함수 정의의 기본 구문은 다음과 같습니다.

function_name <- function(arg_1, arg_2, ...) {
   Function body 
}

기능 구성 요소

함수의 다른 부분은-

  • Function Name− 이것은 함수의 실제 이름입니다. 이 이름을 가진 객체로 R 환경에 저장됩니다.

  • Arguments− 인수는 자리 표시 자입니다. 함수가 호출되면 인수에 값을 전달합니다. 인수는 선택 사항입니다. 즉, 함수는 인수를 포함하지 않을 수 있습니다. 또한 인수는 기본값을 가질 수 있습니다.

  • Function Body − 함수 본문에는 함수의 기능을 정의하는 명령문 모음이 포함되어 있습니다.

  • Return Value − 함수의 반환 값은 평가할 함수 본문의 마지막 표현식입니다.

R에는 많은 in-built먼저 정의하지 않고 프로그램에서 직접 호출 할 수있는 함수. 우리는 또한 우리 자신의 함수를 만들고 사용할 수 있습니다.user defined 기능.

내장 기능

내장 함수의 간단한 예는 다음과 같습니다. seq(), mean(), max(), sum(x)paste(...)등. 사용자가 작성한 프로그램에 의해 직접 호출됩니다. 가장 널리 사용되는 R 함수를 참조 할 수 있습니다 .

# Create a sequence of numbers from 32 to 44.
print(seq(32,44))

# Find mean of numbers from 25 to 82.
print(mean(25:82))

# Find sum of numbers frm 41 to 68.
print(sum(41:68))

위 코드를 실행하면 다음과 같은 결과가 생성됩니다.

[1] 32 33 34 35 36 37 38 39 40 41 42 43 44
[1] 53.5
[1] 1526

사용자 정의 기능

R에서 사용자 정의 함수를 만들 수 있습니다. 사용자가 원하는 기능에 따라 다르며 생성 된 후에는 내장 함수처럼 사용할 수 있습니다. 다음은 함수를 만들고 사용하는 방법의 예입니다.

# Create a function to print squares of numbers in sequence.
new.function <- function(a) {
   for(i in 1:a) {
      b <- i^2
      print(b)
   }
}

함수 호출

# Create a function to print squares of numbers in sequence.
new.function <- function(a) {
   for(i in 1:a) {
      b <- i^2
      print(b)
   }
}

# Call the function new.function supplying 6 as an argument.
new.function(6)

위 코드를 실행하면 다음과 같은 결과가 생성됩니다.

[1] 1
[1] 4
[1] 9
[1] 16
[1] 25
[1] 36

인수없이 함수 호출

# Create a function without an argument.
new.function <- function() {
   for(i in 1:5) {
      print(i^2)
   }
}	

# Call the function without supplying an argument.
new.function()

위 코드를 실행하면 다음과 같은 결과가 생성됩니다.

[1] 1
[1] 4
[1] 9
[1] 16
[1] 25

인수 값이있는 함수 호출 (위치 및 이름 별)

함수 호출에 대한 인수는 함수에 정의 된 것과 동일한 시퀀스로 제공되거나 다른 시퀀스로 제공되지만 인수 이름에 할당 될 수 있습니다.

# Create a function with arguments.
new.function <- function(a,b,c) {
   result <- a * b + c
   print(result)
}

# Call the function by position of arguments.
new.function(5,3,11)

# Call the function by names of the arguments.
new.function(a = 11, b = 5, c = 3)

위 코드를 실행하면 다음과 같은 결과가 생성됩니다.

[1] 26
[1] 58

기본 인수로 함수 호출

함수 정의에서 인수 값을 정의하고 인수를 제공하지 않고 함수를 호출하여 기본 결과를 얻을 수 있습니다. 그러나 인수의 새 값을 제공하여 이러한 함수를 호출하고 기본값이 아닌 결과를 얻을 수도 있습니다.

# Create a function with arguments.
new.function <- function(a = 3, b = 6) {
   result <- a * b
   print(result)
}

# Call the function without giving any argument.
new.function()

# Call the function with giving new values of the argument.
new.function(9,5)

위 코드를 실행하면 다음과 같은 결과가 생성됩니다.

[1] 18
[1] 45

기능의 지연 평가

함수에 대한 인수는 느리게 평가되므로 함수 본문에서 필요할 때만 평가됩니다.

# Create a function with arguments.
new.function <- function(a, b) {
   print(a^2)
   print(a)
   print(b)
}

# Evaluate the function without supplying one of the arguments.
new.function(6)

위 코드를 실행하면 다음과 같은 결과가 생성됩니다.

[1] 36
[1] 6
Error in print(b) : argument "b" is missing, with no default