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
- Definició de Funcions: Com crear una funció en R.
- Arguments de Funció: Com passar arguments a una funció.
- Valors de Retorn: Com retornar valors des d'una funció.
- Àmbit de Variables: Comprendre l'àmbit de les variables dins i fora de les funcions.
- 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
- Introducció a R i RStudio
- Sintaxi Bàsica de R
- Tipus de Dades i Estructures
- Operacions i Funcions Bàsiques
- Importació i Exportació de Dades
Mòdul 2: Manipulació de Dades
- Vectors i Llistes
- Matrius i Arrays
- Data Frames
- Factors
- Manipulació de Dades amb dplyr
- Manipulació de Cadenes
Mòdul 3: Visualització de Dades
- Introducció a la Visualització de Dades
- Gràfics Base de R
- Conceptes Bàsics de ggplot2
- ggplot2 Avançat
- Visualitzacions Interactives amb plotly
Mòdul 4: Anàlisi Estadística
- Estadístiques Descriptives
- Distribucions de Probabilitat
- Proves d'Hipòtesi
- Correlació i Regressió
- ANOVA i Proves de Chi-Cuadrat
Mòdul 5: Gestió Avançada de Dades
- Gestió de Dates i Hores
- Reestructuració de Dades
- Treballant amb Grans Conjunts de Dades
- Web Scraping
- APIs i JSON
Mòdul 6: Conceptes Avançats de Programació
- Escriure Funcions
- Depuració i Gestió d'Errors
- Programació Orientada a Objectes en R
- Programació Funcional
- Computació Paral·lela
Mòdul 7: Aprenentatge Automàtic amb R
- Introducció a l'Aprenentatge Automàtic
- Preprocessament de Dades
- Aprenentatge Supervisat
- Aprenentatge No Supervisat
- Avaluació i Ajust de Models
Mòdul 8: Temes Especialitzats
- Anàlisi de Sèries Temporals
- Anàlisi de Dades Espacials
- Mineria de Text i Processament del Llenguatge Natural
- Bioinformàtica amb R
- Anàlisi de Dades Financeres