R Vector

In questo articolo, imparerai a conoscere vector nella programmazione R. Imparerai a crearli, accedere ai loro elementi utilizzando metodi diversi e modificarli nel tuo programma.

Vector è una struttura dati di base in R. Contiene elementi dello stesso tipo. I tipi di dati possono essere logici, interi, doppi, caratteri, complessi o grezzi.

Il tipo di vettore può essere controllato con la funzione typeof().

Un’altra proprietà importante di un vettore è la sua lunghezza. Questo è il numero di elementi nel vettore e può essere controllato con la funzione length().

Come creare il vettore in R?

I vettori vengono generalmente creati utilizzando la funzione c().

 Vettore nella programmazione R

Poiché un vettore deve avere elementi dello stesso tipo, questa funzione cercherà di costringere gli elementi allo stesso tipo, se sono diversi.

La coercizione va dai tipi più bassi a quelli più alti, da logico a intero a doppio carattere.

> x <- c(1, 5, 4, 9, 0)> typeof(x) "double"> length(x) 5> x <- c(1, 5.4, TRUE, "hello")> x "1" "5.4" "TRUE" "hello"> typeof(x) "character"

Se vogliamo creare un vettore di numeri consecutivi, l’operatore : è molto utile.

Esempio 1: Creazione di un vettore utilizzando : operatore

> x <- 1:7; x 1 2 3 4 5 6 7> y <- 2:-2; y 2 1 0 -1 -2

È possibile creare sequenze più complesse utilizzando la funzione seq(), come la definizione del numero di punti in un intervallo o la dimensione del passo.

Esempio 2: Creazione di un vettore utilizzando la funzione seq ()

> seq(1, 3, by=0.2) # specify step size 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0> seq(1, 5, length.out=4) # specify length of the vector 1.000000 2.333333 3.666667 5.000000

Come accedere agli elementi di un vettore?

È possibile accedere agli elementi di un vettore utilizzando l’indicizzazione vettoriale. Il vettore utilizzato per l’indicizzazione può essere logico, intero o vettore di caratteri.

Utilizzo del vettore intero come indice

L’indice vettoriale in R inizia da 1, a differenza della maggior parte dei linguaggi di programmazione in cui l’indice inizia da 0.

Possiamo usare un vettore di numeri interi come indice per accedere a elementi specifici.

Possiamo anche usare numeri interi negativi per restituire tutti gli elementi tranne quelli specificati.

Ma non possiamo mescolare numeri interi positivi e negativi mentre l’indicizzazione e i numeri reali, se usati, vengono troncati in numeri interi.

> x 0 2 4 6 8 10> x # access 3rd element 4> x # access 2nd and 4th element 2 6> x # access all but 1st element 2 4 6 8 10> x # cannot mix positive and negative integersError in x : only 0's may be mixed with negative subscripts> x # real numbers are truncated to integers 2 4

Utilizzo del vettore logico come indice

Quando si utilizza un vettore logico per l’indicizzazione, viene restituita la posizione in cui il vettore logico è TRUE.

Questa utile funzione ci aiuta nel filtraggio del vettore come mostrato di seguito.

> x -3 3> x # filtering vectors based on conditions -3 -1> x 3

Nell’esempio precedente, l’espressione x>0 produrrà un vettore logico (FALSE, FALSE, FALSE, TRUE) che viene quindi utilizzato per l’indicizzazione.

Utilizzo del vettore di caratteri come indice

Questo tipo di indicizzazione è utile quando si ha a che fare con vettori denominati. Possiamo nominare ogni elemento di un vettore.

> x <- c("first"=3, "second"=0, "third"=9)> names(x) "first" "second" "third" > xsecond 0 > xfirst third 3 9

Come modificare un vettore in R?

Possiamo modificare un vettore usando l’operatore di assegnazione.

Possiamo utilizzare le tecniche discusse sopra per accedere a elementi specifici e modificarli.

Se vogliamo troncare gli elementi, possiamo usare le riassegnazioni.

> x -3 -2 -1 0 1 2> x <- 0; x # modify 2nd element -3 0 -1 0 1 2> x <- 5; x # modify elements less than 0 5 0 5 0 1 2> x <- x; x # truncate x to first 4 elements 5 0 5 0

Come eliminare un vettore?

Possiamo eliminare un vettore semplicemente assegnandogli un NULL.

> x -3 -2 -1 0 1 2> x <- NULL> xNULL> xNULL

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.