English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Uma função é um conjunto de instruções que são executadas juntos para realizar uma tarefa. O R fornece muitas funções integradas, claro, também podemos criar funções ourselves.
Você pode dividir o código em diferentes funções. Como dividir o código em diferentes funções é sua decisão, mas logicamente, a divisão geralmente é feita com base em cada função executar uma tarefa específica. Função
FunçãoDeclaraçãoInforma ao compilador o nome, o tipo de retorno e os parâmetros da função. FunçãoDefiniçãoFornece o corpo real da função.
A função no R é um objeto que pode ter atributos.
A definição de função no R usa a palavra-chave function, geralmente na forma如下:
function_name <- function(arg_1, arg_2, ...) { // Corpo da função }
Descrição:
function_name : nome da função
arg_1, arg_2, ... : lista de parâmetros formais
O valor de retorno da função usa return().
O R oferece muitas funções integradas úteis, que podemos usar diretamente sem definição.
Por exemplo: seq(), mean(), max(), sum(x) e paste(...) etc.
# Output 32 até 44 todos os números até print(seq(32,44)) # Calcular a média de dois números print(mean(25:82)) # Calcular 41 até 68 A soma de todos os números print(sum(41:68))
Executar o código acima, o resultado de saída será:
[1] 32 33 34 35 36 37 38 39 40 41 42 43 44 [1] 53.5 [1] 1526
Podemos criar funções ourselves, para funções específicas, definidas, podemos usá-las como funções integradas.
A seguir, mostro como personalizar uma função:
# Definir uma função para contar uma série até o quadrado new.function <- function(a) { for(i in 1:a) { b <- i^2 print(b) } }
A seguir, podemos chamar a função:
new.function <- function(a) { for(i in 1:a) { b <- i^2 print(b) } } # Chamar função e passar parâmetros new.function(6)
Executar o código acima, o resultado de saída será:
[1] 1 [1] 4 [1] 9 [1] 16 [1] 25 [1] 36
Também podemos criar uma função sem parâmetros:
new.function <- function() { for(i in 1:5) { print(i^2) } } # Chamar função, não passar parâmetros new.function()
Executar o código acima, o resultado de saída será:
[1] 1 [1] 4 [1] 9 [1] 16 [1] 25
Os parâmetros da função podem ser passados na ordem em que foram criados, ou não, mas precisam especificar o nome do parâmetro:
# Criar função new.function <- function(a,b,c) { result <- a * b + c print(result) } # Sem nome de parâmetro new.function(5,3,11) # Com nome de parâmetro new.function(a = 11, b = 5, c = 3)
Executar o código acima, o resultado de saída será:
[1] 26 [1] 58
Também podemos especificar valores padrão para os parâmetros ao criar a função, se não passar parâmetros ao chamar, usará o valor padrão:
# Criar função com parâmetros padrão new.function <- function(a = 3, b = 6) { result <- a * b print(result) } # Chamar função, não passar parâmetros, usará o padrão new.function() # Chamar função, passar parâmetros new.function(9,5)
Executar o código acima, o resultado de saída será:
[1] 18 [1] 45
O cálculo perezoso adia o trabalho de cálculo até que o sistema precise dos resultados desses cálculos. Se não precisar dos resultados, não será necessário calcular.
Por padrão, o cálculo de parâmetros das funções R é perezoso, ou seja, só chamamos ele quando calculamos:
f <- function(x) { 10 } f()
Executar o código acima, o resultado de saída será:
[1] 10
O código acima foi executado, mas não houve erro, mesmo que não tenhamos passado parâmetros, pois não usamos o parâmetro x dentro da função, então não chamamos ele e não há erro.
new.function <- function(a, b) { print(a^2) print(a) print(b) # Usar b, mas não passar, então será emitido um erro } # Passar um parâmetro new.function(6)
Executar o código acima, o resultado de saída será:
[1] 36 [1] 6 Erro em print(b): Falta o parâmetro "b", e não há valor padrão Chamadas: new.function -> print Parar Execução