13 outubro, 2021
No módulo Básico, vimos:
nova_funcao <- function(x) {
# Corpo da funcao
x
}
# Funcao com saida implicita
nova_funcao <- function(x) {
# Corpo da funcao
x
}
nova_funcao(2)
## [1] 2
# Funcao com saida implicita sem resultado
nova_funcao2 <- function(x) {
# Corpo da funcao
x <- x
}
nova_funcao2(4)
num_par_ou_impar <- function(x) {
if (!is.numeric(x)) stop("o argumento x deve ser numerico", call. = FALSE)
num <- as.integer(x)
if (num %% 2 == 0) {
return("Número par!")
} else return("Número ímpar!")
}
# Numero real eh coagido a inteiro sem arredondamento
num_par_ou_impar(1.6)
## [1] "Número ímpar!"
# Programacao defensiva (x deve ser numerico)
num_par_ou_impar(TRUE)
## Error: o argumento x deve ser numerico
# Verificando se um numero eh par ou impar
num_par_ou_impar(6)
## [1] "Número par!"
# Funcao com saida invisivel
estdes <- function(x) {
plot(x)
resumo <- summary(x)
invisible(resumo)
}
# Conjunto de dados
y <- rexp(30)
# Chamando estdes
res <- estdes(y)
# Imprimindo o resultado invisivel res ## Min. 1st Qu. Median Mean 3rd Qu. Max. ## 0.01888 0.35033 0.63734 0.89462 1.39454 3.11074 # Formas alternativas print(estdes(y))
## Min. 1st Qu. Median Mean 3rd Qu. Max. ## 0.01888 0.35033 0.63734 0.89462 1.39454 3.11074
# Formas alternativas (estdes(y))
## Min. 1st Qu. Median Mean 3rd Qu. Max. ## 0.01888 0.35033 0.63734 0.89462 1.39454 3.11074
# Sinalizador de visibilidade withVisible(estdes(y))
## $value ## Min. 1st Qu. Median Mean 3rd Qu. Max. ## 0.01888 0.35033 0.63734 0.89462 1.39454 3.11074 ## ## $visible ## [1] FALSE
# Funcao `<-`() com saida invisivel x <- 10 # Acessando o valor do obj associado com o nome 'x' x
## [1] 10
# Outra forma de acesso (x <- 10)
## [1] 10