Come centrare i dati in r (con esempi)


Centrare un set di dati significa sottrarre il valore medio di ogni singola osservazione nel set di dati.

Ad esempio, supponiamo di avere il seguente set di dati:

Risulta che il valore medio è 14. Quindi, per centrare questo set di dati, sottrairemmo 14 da ogni singola osservazione:

Come creare un data center

Si noti che il valore medio del set di dati centrato è zero.

Questo tutorial fornisce diversi esempi su come centrare i dati in R.

Esempio 1: centrare i valori di un vettore

Il codice seguente mostra come utilizzare la funzione base R scale() per centrare i valori in un vettore:

 #createvector
data <- c(4, 6, 9, 13, 14, 17, 18, 19, 19, 21)

#subtract the mean value from each observation in the vector
scale(data, scale= FALSE )

      [,1]
 [1,] -10
 [2,] -8
 [3,] -5
 [4,] -1
 [5,] 0
 [6,] 3
 [7,] 4
 [8,] 5
 [9,] 5
[10,] 7

attr(,"scaled:center")
[1] 14

I valori risultanti sono i valori centrati del set di dati. La funzione scale() ci dice anche che il valore medio del set di dati è 14.

Si noti che la funzione scale() , per impostazione predefinita, sottrae la media da ogni singola osservazione e quindi la divide per la deviazione standard.

Specificando scale=FALSE diciamo a R di non dividere per la deviazione standard.

Esempio 2: colonne centrali in un frame di dati

Il codice seguente mostra come utilizzare la funzione sapply() e la funzione scale() del database R per centrare i valori di ciascuna colonna di un data frame:

 #create data frame
df <- data.frame(x = c(1, 4, 5, 6, 6, 8, 9),
                 y = c(7, 7, 8, 8, 8, 9, 12),
                 z = c(3, 3, 4, 4, 6, 7, 7))

#center each column in the data frame
df_new <- sapply(df, function (x) scale(x, scale= FALSE ))

#display data frame
df_new

              X Y Z
[1,] -4.5714286 -1.4285714 -1.8571429
[2,] -1.5714286 -1.4285714 -1.8571429
[3,] -0.5714286 -0.4285714 -0.8571429
[4,] 0.4285714 -0.4285714 -0.8571429
[5,] 0.4285714 -0.4285714 1.1428571
[6,] 2.4285714 0.5714286 2.1428571
[7,] 3.4285714 3.5714286 2.1428571

Possiamo verificare che la media di ciascuna colonna nel nuovo frame di dati sia zero utilizzando la funzione colMeans() :

 colMeans(df_new)

            xyz 2.537653e-16 -2.537653e-16 3.806479e-16 

I valori sono mostrati in notazione scientifica, ma ogni valore è essenzialmente zero.

Risorse addizionali

Come calcolare la media sulle colonne in R
Come sommare colonne specifiche in R
Come rimuovere i valori anomali da più colonne in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *