Capítulo 37 Scripts em R

Um script em R é um ficheiro que contém um conjunto de definições, como variáveis, funções e blocos de código, que podem ser reutilizados em outros programas R. Scripts são ferramentas essenciais para automatizar tarefas e para garantir a reprodutibilidade da análise de dados.

  • Criar um Script: Para criar um script em R, basta gravar o código num ficheiro com a extensão “.R”. Este ficheiro pode então ser executado ou reutilizado noutras sessões de R.

Exemplo: Guarde o seguinte código num ficheiro chamado meu_script.R:

produto <- function(x,y){
  return(x*y)
}

Executar o script

Para executar o script que criou, utilize a função source() no console do R ou dentro de outro script. Isto permitirá que o R leia e execute todas as linhas de código do script.

  1. Executar no Diretório de Trabalho Atual: Se o ficheiro meu_script.R estiver no diretório de trabalho atual, pode executá-lo simplesmente escrevendo:
source("meu_script.R")
  1. Executar a Partir de Outro Diretório: Se o ficheiro estiver localizado num diretório diferente do diretório de trabalho atual, terá de fornecer o caminho completo para o ficheiro:
source("/caminho/para/o/seu/script/meu_script.R")

O que Acontece Quando Executamos um Script?

Quando utiliza o comando source(), o R lê e executa todas as linhas do script. Qualquer função, variável ou resultado de operações realizadas dentro do script será carregado e ficará disponível no ambiente de trabalho após a execução. Por exemplo, após executar o script acima, a função produto() estará disponível para ser utilizada:

# Agora pode utilizar a função 'produto'
produto(2,3)
## [1] 6

Notas Importantes

  • Diretório de trabalho: O diretório de trabalho é o local onde o R procura por ficheiros para leitura ou onde guarda ficheiros. Pode verificar o diretório de trabalho atual utilizando getwd() e mudar para um novo diretório com setwd("caminho/do/diretorio").

37.1 Exercícios

1. Crie os seguintes scripts:

  1. Crie um script quadrado.R que contenha funções para calcular o perímetro e a área de um quadrado, dado o comprimento do lado. Utilize o script quadrado.R noutro script para calcular o perímetro e a área de um quadrado com lado de comprimento 5.

  2. Crie um script estatistica.R que contenha funções para ordenar uma amostra, calcular a média, a variância e o desvio padrão de um vetor numérico.

  3. Crie um programa que utilize o script estatistica.R para calcular a mediana, a variância e o desvio padrão da amostra amostra <- c(1, 2, 3, 4, 5, 6, 7).

2. Crie um script chamado circulo.R que contenha duas funções:

  • area_circulo(r): para calcular a área de um círculo, dado o raio r.

  • circunferencia(r): para calcular a circunferência de um círculo, dado o raio r.

Em seguida, crie outro script que utilize as funções de circulo.R para calcular a área e a circunferência de um círculo com raio igual a 10.

3. Crie um script chamado analise.R com funções para calcular:

  • O valor mínimo (minimo) e máximo (maximo) de um vetor numérico.
  • A amplitude (amplitude) do vetor, calculada como a diferença entre o valor máximo e o valor mínimo.

Em seguida, crie um script separado que utilize analise.R para calcular o valor mínimo, máximo e amplitude de um vetor dados <- c(8, 15, 22, 3, 18, 7).

4. Crie um script chamado categorias.R que contenha uma função chamada contar_categorias, que recebe um vetor categórico e retorna uma tabela de frequências de cada categoria.

Em seguida, crie um script que utilize categorias.R para analisar o vetor cidades <- c("Lisboa", "Porto", "Lisboa", "Coimbra", "Porto", "Porto", "Lisboa"). Exiba a frequência de cada cidade.

5. Crie um script chamado escore_z.R que contenha uma função chamada calcular_escore_z(valor, media, desvio_padrao). Essa função deve calcular o escore z de um valor em relação a uma média e desvio padrão. Fórmula \(z = \frac{x-\mu}{\sigma}\).

Em seguida, crie um script separado que use escore_z.R para calcular o escore z dos valores do vetor valores <- c(5, 6, 7, 8, 9), assumindo uma média de 7 e desvio padrão de 1.5.

6. Crie um script chamado binomial.R que contenha uma função chamada probabilidade_binomial(n, p, x), que calcula a probabilidade de ocorrer exatamente x sucessos em n tentativas de um experimento binomial.

Fórmula \(P(X=x) = \binom{n}{x}p^x(1-p)^{n-x}\), onde

  • \(\binom{n}{x}\) é o coeficiente binomial. No R choose(n,x).
  • \(p\) é a probabilidade de sucesso em cada tentativa.

Em seguida, crie um script separado que use binomial.R para calcular a probabilidade de obter exatamente 3 sucessos em 5 tentativas, com uma probabilidade de sucesso de 0.6.