Zoeken…


Opmerkingen

Wat is recycling in R

Recycling is wanneer een object bij bepaalde bewerkingen automatisch wordt verlengd om overeen te komen met de lengte van een ander, langer object.

De gevectoriseerde toevoeging resulteert bijvoorbeeld in het volgende:

c(1,2,3) + c(1,2,3,4,5,6)  
[1] 2 4 6 5 7 9

Vanwege de recycling was de operatie die feitelijk plaatsvond:

c(1,2,3,1,2,3) + c(1,2,3,4,5,6)

In gevallen waarin het langere object geen veelvoud is van het kortere object, wordt een waarschuwingsbericht weergegeven:

c(1,2,3) + c(1,2,3,4,5,6,7)
[1] 2 4 6 5 7 9 8
Warning message:
In c(1, 2, 3) + c(1, 2, 3, 4, 5, 6, 7) :
  longer object length is not a multiple of shorter object length

Een ander voorbeeld van recycling:

matrix(nrow =5, ncol = 2, 1:5 )
     [,1] [,2]
[1,]    1    1
[2,]    2    2
[3,]    3    3
[4,]    4    4
[5,]    5    5

Recycling gebruik bij subsetting

Recycling kan op een slimme manier worden gebruikt om code te vereenvoudigen.

deelverzameling

Als we elk derde element van een vector willen behouden, kunnen we het volgende doen:

my_vec <-   c(1,2,3,4,5,6,7,8,9,10)
my_vec[c(TRUE, FALSE)]

[1] 1 3 5 7 9

Hier werd de logische uitdrukking uitgebreid tot de lengte van de vector.

We kunnen ook vergelijkingen uitvoeren met behulp van recycling:

my_vec <-   c("foo", "bar", "soap", "mix")
my_vec == "bar"

[1] FALSE  TRUE FALSE FALSE

Hier wordt "bar" gerecycled.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow