Ricerca…


Osservazioni

Che cos'è il riciclaggio in R

Il riciclo è quando un oggetto viene automaticamente esteso in determinate operazioni per adattarsi alla lunghezza di un altro oggetto più lungo.

Ad esempio, l'aggiunta vettorizzata produce quanto segue:

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

A causa del riciclaggio, l'operazione effettivamente avvenuta è stata:

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

Nei casi in cui l'oggetto più lungo non è un multiplo di quello più corto, viene presentato un messaggio di avviso:

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

Un altro esempio di riciclaggio:

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

Uso del riciclaggio in subsetting

Il riciclaggio può essere utilizzato in modo intelligente per semplificare il codice.

subsetting

Se vogliamo mantenere ogni terzo elemento di un vettore, possiamo fare quanto segue:

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

[1] 1 3 5 7 9

Qui l'espressione logica è stata estesa alla lunghezza del vettore.

Possiamo anche fare confronti con il riciclaggio:

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

[1] FALSE  TRUE FALSE FALSE

Qui la "barra" viene riciclata.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow