Hoe de map()-functie in r te gebruiken (met voorbeelden)
De map()- functie van het purrr- pakket in R kan worden gebruikt om een functie toe te passen op elk element van een vector of lijst en dienovereenkomstig een lijst terug te geven.
Deze functie gebruikt de volgende basissyntaxis:
kaart(.x, .f)
Goud:
- .x : Een vector of een lijst
- .f : Een functie
De volgende voorbeelden laten zien hoe u deze functie in verschillende scenario’s kunt gebruiken.
Voorbeeld 1: Gebruik map() om willekeurige variabelen te genereren
De volgende code laat zien hoe u de functie map() gebruikt om drie willekeurige variabelen te genereren die elk vijf waarden bevatten die een standaard normale verdeling volgen:
library (purrr)
#definevector
data <- 1:3
#apply rnorm() function to each value in vector
data %>%
map( function (x) rnorm(5, x))
[[1]]
[1] 0.0556774 1.8053082 2.6489861 2.2640136 1.1062672
[[2]]
[1] 1.450175 1.123048 3.413677 3.055304 2.713801
[[3]]
[1] 2.936732 2.157129 3.693738 2.994391 2.567040
Voor elk element van de originele vector paste de functie map() de functie rnorm() toe om vijf willekeurige waarden te genereren uit een standaard normale verdeling .
Voorbeeld 2: Gebruik map() om elke waarde in een vector te transformeren
De volgende code laat zien hoe u de functie map() gebruikt om het kwadraat van elke waarde in een vector te berekenen:
library (purrr)
#definevector
data <- c(2, 4, 10, 15, 20)
#calculate square of each value in the vector
data %>%
map( function (x) x^2)
[[1]]
[1] 4
[[2]]
[1] 16
[[3]]
[1] 100
[[4]]
[1] 225
[[5]]
[1] 400
Voor elk element van de oorspronkelijke vector paste de functie map() een functie toe die het kwadraat van elke waarde berekende.
Voorbeeld 3: Gebruik map() om het gemiddelde van elke vector in de lijst te berekenen
De volgende code laat zien hoe u de functie map() gebruikt om de gemiddelde waarde van elke vector in een lijst te berekenen:
library (purrr)
#define list of vectors
data <- list(c(1, 2, 3),
c(4, 5, 6),
c(7, 8, NA))
#calculate mean value of each vector in list
data %>%
map(mean, na. rm = TRUE )
[[1]]
[1] 2
[[2]]
[1] 5
[[3]]
[1] 7.5
Voor elke vector in de lijst berekent de functie map() de gemiddelde waarde.
Uit het resultaat kunnen we zien:
- De gemiddelde waarde van de eerste vector in de lijst is 2 .
- De gemiddelde waarde van de tweede vector in de lijst is 5 .
- De gemiddelde waarde van de derde vector in de lijst is 7,5 .
Opmerking : het argument na.rm=TRUE vertelt R dat hij NA-waarden moet negeren bij het berekenen van het gemiddelde.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende functies in R kunt gebruiken:
Hoe de functie tapply() in R te gebruiken
Hoe de dim()-functie in R te gebruiken
Hoe de functie table() in R te gebruiken
Hoe de sign()-functie in R te gebruiken