Come ridimensionare solo colonne numeriche in r (con esempio)
È possibile utilizzare la seguente sintassi dal pacchetto dplyr per ridimensionare solo le colonne numeriche di un frame di dati in R:
library (dplyr) df %>% mutate(across(where(is. numeric ), scale))
L’esempio seguente mostra come utilizzare questa funzione nella pratica.
Esempio: ridimensiona solo le colonne numeriche utilizzando dplyr
Supponiamo di avere il seguente frame di dati in R che contiene informazioni su vari giocatori di basket:
#create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), dots=c(22, 34, 30, 12, 18), assists=c(7, 9, 9, 12, 14), rebounds=c(5, 10, 10, 8, 8)) #view data frame df team points assists rebounds 1 to 22 7 5 2 B 34 9 10 3 C 30 9 10 4 D 12 12 8 5 E 18 14 8
Supponiamo di voler utilizzare la funzione di scala in R per ridimensionare solo le colonne numeriche del frame di dati.
Possiamo usare la seguente sintassi per fare ciò:
library (dplyr)
#scale only the numeric columns in the data frame
df %>% mutate(across(where(is. numeric ), scale))
team points assists rebounds
1 A -0.1348400 -1.153200 -1.56144012
2 B 1.2135598 -0.432450 0.87831007
3 C 0.7640932 -0.432450 0.87831007
4 D -1.2585064 0.648675 -0.09759001
5 E -0.5843065 1.369425 -0.09759001
Da notare che i valori nelle tre colonne numeriche ( punti , assist e rimbalzi ) sono stati scalati mentre la colonna squadra è rimasta invariata.
Note tecniche
La funzione scale() in R utilizza la seguente sintassi di base:
scale(x, center = TRUE , scale = TRUE )
Oro:
- x : Nome dell’oggetto da ridimensionare
- center : se sottrarre la media durante il ridimensionamento. Il valore predefinito è VERO.
- scala : se dividere per la deviazione standard durante il ridimensionamento. Il valore predefinito è VERO.
Questa funzione utilizza la seguente formula per calcolare i valori scalati:
x scalato = (x originale – x̄) / s
Oro:
- x originale : il valore x originale
- x̄ : Il campione significa
- s : la deviazione standard del campione
Questa operazione è nota anche come normalizzazione dei dati e converte semplicemente ciascun valore originale in un punteggio z .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni utilizzando dplyr:
Come selezionare le colonne per nome usando dplyr
Come selezionare le colonne per indice utilizzando dplyr
Come utilizzare select_if con più condizioni in dplyr