R é uma linguagem de tipagem dinâmica, então em geral não é necessário especificar o tipo de uma variável. O operador de atribuição preferido é <-
x <- 42
avogadro <- 6.02e23
mystr <- "Hello, World!"
Usar = em vez de <- muitas vezes funciona, mas nem sempre, e é desaconselhado por ser um estilo ruim.
Se você estiver trabalhando no RStudio, dá para digitá-lo com o atalho de teclado Alt-minus.
Os operadores são em sua maioria convencionais, mas repare em %/% e %%:
2 + 3 # 5
2 - 3 # -1
2 * 3 # 6
2 / 3 # 0.6666667
8 %/% 3 # 2 (integer division)
8 %% 3 # 2 (remainder)
2 ^ 3 # 8 (exponential)
Em R, # inicia um comentário de uma linha só.
Não existe uma sintaxe separada para comentários de várias linhas.
Para definir uma função:
squareit <- function(x) {
x * x
}
As funções podem ter zero ou mais argumentos, separados por vírgulas.
Os parênteses () são necessários com function(), mesmo que não haja parâmetros.
É possível especificar valores padrão para os argumentos de uma função, mas eles precisam vir depois de qualquer argumento sem valor padrão, e usamos = e não <- para atribuir o valor padrão.
Como um exemplo meio sem propósito:
squareit <- function(x = 42) {
x * x
}
squareit()
#> [1] 1764
As chaves { } não são estritamente necessárias para corpos de função de uma linha só, mas incluí-las é considerado um bom estilo.
O R retorna automaticamente o valor final de uma função, como nos exemplos acima.
return() pode ser usado em qualquer lugar dentro do corpo da função para deixar um valor de retorno explícito.
Chamar uma função é igual a muitas outras linguagens:
squareit(3)
#> [1] 9
Neste exercício, você vai escrever um pouco de código para ajudar a preparar uma lasanha incrível do seu livro de receitas favorito.
Você tem quatro tarefas, todas relacionadas ao tempo gasto no preparo da lasanha.
Defina a função expected_minutes_in_oven(), que não recebe nenhum parâmetro e retorna quantos minutos a lasanha deve ficar no forno. De acordo com o livro de receitas, o tempo esperado no forno é de 60 minutos.
> expected_minutes_in_oven()
[1] 60
Defina a função remaining_time_in_minutes, que recebe como parâmetro os minutos que a lasanha já passou no forno e retorna quantos minutos a lasanha ainda precisa permanecer no forno, com base no tempo esperado no forno da tarefa anterior.
> remaining_time_in_minutes(50)
[1] 10
Defina a função prep_time_in_minutes(), que recebe como parâmetro o número de camadas que você adicionou à lasanha e retorna quantos minutos você gastou preparando a lasanha, considerando que cada camada leva 2 minutos para ser preparada.
> prep_time_in_minutes(2)
[1] 4
Defina a função elapsed_time_in_minutes, que recebe dois argumentos: o primeiro argumento é o número de camadas que você adicionou à lasanha, e o segundo parâmetro é o número de minutos que a lasanha já passou no forno. A função deve retornar quantos minutos, no total, você trabalhou preparando a lasanha, que é a soma do tempo de preparo, em minutos, com o tempo, em minutos, que a lasanha já passou no forno no momento.
> elapsed_time_in_minutes(3, 20)
[1] 26
Crie sua conta no Exercism para aprender e dominar R com 21 conceitos111 exercícios e mentoria humana de verdade, tudo de graça.