Introducció

Les funcions són blocs de codi reutilitzables que permeten estructurar i organitzar el codi de manera més eficient. En R, les funcions són fonamentals per a la programació modular i per a la creació de codi net i mantenible.

Conceptes Clau

  1. Definició de Funcions: Com crear una funció en R.
  2. Arguments de Funció: Com passar arguments a una funció.
  3. Valors de Retorn: Com retornar valors des d'una funció.
  4. Àmbit de Variables: Comprendre l'àmbit de les variables dins i fora de les funcions.
  5. Funcions Anònimes: Utilitzar funcions sense nom.

Definició de Funcions

Per definir una funció en R, utilitzem la paraula clau function. La sintaxi bàsica és la següent:

nom_funcio <- function(argument1, argument2, ...) {
  # Cos de la funció
  resultat <- argument1 + argument2
  return(resultat)
}

Exemple Pràctic

Definim una funció que suma dos nombres:

sumar <- function(a, b) {
  resultat <- a + b
  return(resultat)
}

# Cridem la funció
resultat <- sumar(3, 5)
print(resultat)  # Ha de mostrar 8

Arguments de Funció

Les funcions poden tenir arguments amb valors per defecte. Això permet cridar la funció sense especificar tots els arguments.

Exemple Pràctic

Definim una funció amb un argument per defecte:

saludar <- function(nom = "Món") {
  missatge <- paste("Hola,", nom)
  return(missatge)
}

# Cridem la funció amb i sense argument
print(saludar("Anna"))  # Ha de mostrar "Hola, Anna"
print(saludar())        # Ha de mostrar "Hola, Món"

Valors de Retorn

Les funcions poden retornar un o més valors utilitzant la paraula clau return.

Exemple Pràctic

Definim una funció que retorna múltiples valors:

operacions <- function(a, b) {
  suma <- a + b
  resta <- a - b
  return(list(suma = suma, resta = resta))
}

# Cridem la funció
resultats <- operacions(10, 5)
print(resultats$suma)  # Ha de mostrar 15
print(resultats$resta) # Ha de mostrar 5

Àmbit de Variables

Les variables definides dins d'una funció tenen un àmbit local i no són accessibles fora de la funció.

Exemple Pràctic

variable_global <- 10

funcio <- function() {
  variable_local <- 5
  return(variable_local)
}

print(funcio())          # Ha de mostrar 5
print(variable_global)   # Ha de mostrar 10
# print(variable_local)  # Generaria un error perquè variable_local no és accessible fora de la funció

Funcions Anònimes

Les funcions anònimes són funcions sense nom que es poden utilitzar en llocs on es necessita una funció ràpida.

Exemple Pràctic

Utilitzem una funció anònima amb lapply:

llista <- list(1, 2, 3, 4, 5)
resultats <- lapply(llista, function(x) x * 2)
print(resultats)  # Ha de mostrar 2, 4, 6, 8, 10

Exercicis Pràctics

Exercici 1

Crea una funció multiplicar que prengui dos arguments i retorni el seu producte.

multiplicar <- function(a, b) {
  # El teu codi aquí
}

# Prova la funció
print(multiplicar(4, 5))  # Ha de mostrar 20

Solució

multiplicar <- function(a, b) {
  resultat <- a * b
  return(resultat)
}

print(multiplicar(4, 5))  # Ha de mostrar 20

Exercici 2

Crea una funció dividir que prengui dos arguments i retorni el quocient. Si el segon argument és zero, la funció ha de retornar un missatge d'error.

dividir <- function(a, b) {
  # El teu codi aquí
}

# Prova la funció
print(dividir(10, 2))  # Ha de mostrar 5
print(dividir(10, 0))  # Ha de mostrar "Error: Divisió per zero"

Solució

dividir <- function(a, b) {
  if (b == 0) {
    return("Error: Divisió per zero")
  } else {
    resultat <- a / b
    return(resultat)
  }
}

print(dividir(10, 2))  # Ha de mostrar 5
print(dividir(10, 0))  # Ha de mostrar "Error: Divisió per zero"

Resum

En aquesta secció, hem après a:

  • Definir funcions en R.
  • Passar arguments a les funcions.
  • Retornar valors des de les funcions.
  • Comprendre l'àmbit de les variables dins i fora de les funcions.
  • Utilitzar funcions anònimes.

Aquestes habilitats són fonamentals per escriure codi modular i mantenible en R. En la següent secció, explorarem tècniques de depuració i gestió d'errors per millorar la robustesa del nostre codi.

Programació en R: De Principiant a Avançat

Mòdul 1: Introducció a R

Mòdul 2: Manipulació de Dades

Mòdul 3: Visualització de Dades

Mòdul 4: Anàlisi Estadística

Mòdul 5: Gestió Avançada de Dades

Mòdul 6: Conceptes Avançats de Programació

Mòdul 7: Aprenentatge Automàtic amb R

Mòdul 8: Temes Especialitzats

Mòdul 9: Projecte i Estudis de Cas

© Copyright 2024. Tots els drets reservats