Direct naar de hoofdinhoud
Module 3 · Les 2 van 26/10 in de cursus~15 min
Modulelessen (2/2)

Verkenning en aggregatie

R is in de eerste plaats gemaakt als een statistische omgeving en biedt daarom veel ingebouwde functies voor het analyseren, samenvatten en begrijpen van de distributie van gegevens in vectoren of tabellen.

Basisstatistische functies

Met R kunt u eenvoudig de belangrijkste maten van centrum en spreiding op numerieke vectoren berekenen:

  • mean(x): Berekent het rekenkundig gemiddelde van de elementen.
  • median(x): Berekent de mediaan (de middelste waarde).
  • sd(x): Berekent de standaardafwijking (een maatstaf voor hoe verspreid de gegevens zijn).
  • min(x) en max(x): retourneren respectievelijk de minimum- en maximumwaarden.
R
values <- c(10, 12, 15, 18, 20, 22)

avg <- mean(values)
dispersion <- sd(values)

cat("Mean:", avg, "- Std Dev:", round(dispersion, 2), "\n")

Ontbrekende gegevens verwerken (NA)

In de echte wereld bevatten datasets vaak ontbrekende waarden, weergegeven in R door de speciale entiteit NA (niet beschikbaar).

Als u het gemiddelde of een ander aggregaat probeert te berekenen voor een vector die zelfs maar één enkele NA bevat, retourneert R NA als resultaat. Om ontbrekende waarden te negeren, moet u het logische argument na.rm = TRUE doorgeven (NA verwijderen):

R
temperatures <- c(18, 21, NA, 24, 19)

# This will return NA
print(mean(temperatures))

# This will ignore the NA and perform the calculation on valid values
print(mean(temperatures, na.rm = TRUE))

Globaal overzicht met summary()

De functie summary() is een krachtig hulpmiddel dat een compleet statistisch overzicht biedt van een vector of een volledig dataframe, met min, eerste kwartiel, mediaan, gemiddelde, derde kwartiel en max:

R
prices <- c(5, 10, 15, 20, 100)
print(summary(prices))

Gegevens samenvoegen met aggregate

Bij het werken met dataframes is het gebruikelijk om samenvattende statistieken (zoals gemiddelde of som) voor specifieke groepen of categorieën te berekenen. De functie aggregate() in R vereenvoudigt dit proces:

R
df <- data.frame(
  department = c("HR", "IT", "HR", "IT"),
  salary = c(3000, 4500, 3200, 4800)
)

# Calcola la media dei salari per dipartimento
avg_salaries <- aggregate(salary ~ department, data = df, FUN = mean)
print(avg_salaries)

De syntaxis salary ~ department betekent "analyseer de variabele salary op basis van de variabele department". Het argument FUN = mean geeft aan dat we het rekenkundig gemiddelde voor elke groep willen berekenen.

Geavanceerd filteren met subset

De functie subset() biedt een intuïtieve en elegante manier om subsets van rijen en kolommen uit een dataframe te extraheren, waarbij het gebruik van complexe vierkante haakjes wordt vermeden:

R
employees <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 34, 29),
  active = c(TRUE, FALSE, TRUE)
)

# Filtra solo i dipendenti attivi con età superiore a 28
active_employees <- subset(employees, active == TRUE & age > 28)

Probeer het zelf

Oefening#r.m3.l2.e1
Pogingen: 0Laden…

Bereken, gegeven de vectortemperaturen, het gemiddelde en sla dit op in de variabele mean_temp. Bereken vervolgens de mediaan en sla deze op in median_temp.

Editor laden…
Toon hint

Usa mean_temp <- mean(temperaturen) e median_temp <- mediaan(temperaturen)

Oplossing beschikbaar na 3 pogingen

Oefening#r.m3.l2.e2
Pogingen: 0Laden…

Gegeven dat de scoresvector een NA-waarde bevat, berekent u de standaardafwijking van de vector, exclusief ontbrekende waarden, en slaat u deze op in de variabele sd_scores.

Editor laden…
Toon hint

Gebruik de functie sd() met het argument na.rm = TRUE: sd_scores <- sd(scores, na.rm = TRUE)

Oplossing beschikbaar na 3 pogingen

Oefening#r.m3.l2.e3
Pogingen: 0Laden…

Gegeven het dataframe df, verkrijgt u de statistische samenvatting van de waardenkolom en slaat u deze op in de variabele stats_summary.

Editor laden…
Toon hint

Extraheer de kolom met behulp van de operator $ en geef deze door aan summary(): stats_summary <- summary(df$values)

Oplossing beschikbaar na 3 pogingen

Oefening#r.m3.l2.e4
Pogingen: 0Laden…

Gebruik, gegeven de dataframeverkopen, de functie aggregate() om de som (FUN = som) te berekenen van de omzetkolom gegroepeerd op de regiokolom. Sla het resultaat op in de variabele region_sales.

Editor laden…
Toon hint

Gebruik: region_sales <- aggregate(revenue ~ region, data = sales, FUN = som)

Oplossing beschikbaar na 3 pogingen

Oefening#r.m3.l2.e5
Pogingen: 0Laden…

Gebruik, gegeven de dataframeproducten, de functie subset() om alleen de producten te filteren die tot de categorie 'Elektronica' behoren (categorie == 'Elektronica') en een prijs hebben die hoger is dan 100 (prijs > 100). Sla het resultaat op in de variabele dure_elektronica.

Editor laden…
Toon hint

Gebruik: dure_elektronica <- subset(producten, categorie == 'Elektronica' en prijs > 100)

Oplossing beschikbaar na 3 pogingen