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:
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