Questa è una vecchia versione del documento!
select, rename (dplyr)
Select()
permette di selezionare, eventualmente rinominandole, le colonne di un dataframe; rename()
serve solo a rinominarle.
Vedi anche Indicare e scegliere le variabili; dplyr_across
select
Con select()
si possono scegliere le variabili di un dataset, operando in pratica un subset.
library(tidyverse) # carica tutti i pacchetti data("ChickWeight")
La funzione richiede come primo argomento il nome del dataset, e, a seguire, il nome delle variabili da selezionare (di cui si può anche cambiare l'ordine):
names(ChickWeight)
[1] "weight" "Time" "Chick" "Diet"
select(ChickWeight, Chick, weight)
oppure (per l'operatore %>%
, vedi: pipe_operator).
ChickWeight %>% select(Chick, weight)
oppure
ChickWeight %>% select(c(3,1))
o anche
ChickWeight %>% select(3,1)
Chick weight 1 1 42 2 1 51 3 1 59 4 1 64 ...
select_if
Una variazione molto comoda di questa funzione è select_if()
, che permette di selezionare le variabili in base a condizioni. Ad esempio, per selezionare solo le variabili numeriche di un dataset:
starwars %>% select_if(is.numeric)
# A tibble: 87 x 3 height mass birth_year <int> <dbl> <dbl> 1 172 77 19 2 167 75 112 3 96 32 33 4 202 136 41.9 5 150 49 19 6 178 120 52 7 165 75 47 8 97 32 NA 9 183 84 24 10 182 77 57 # ... with 77 more rows
Equivale a select(where())
rename
Con la funzione select()
possiamo anche rinominare le variabili:
ChickWeight %>% select(Peso = weight, Dieta = Diet)
Peso Dieta 1 42 1 2 51 1 3 59 1 4 64 1 ...
Per rinominare le variabili, c'è anche la funzione rename()
.
mydata <- ChickWeight %>% rename(Peso = weight, Tempo = Time, Pollo = Chick, Dieta = Diet)
Le righe precedenti equivalgono a:
mydata <- rename(ChickWeight, Peso = weight, Tempo = Time, Pollo = Chick, Dieta = Diet)
Controlliamo i risultati usando as.tibble()
(vedi Tibble), che mostra le prime righe, le intestazioin di colonna e alcune informazioni sulle variabili:
mydata %>% as_tibble()
# A tibble: 578 x 4 Peso Tempo Pollo Dieta * <dbl> <dbl> <ord> <fct> 1 42 0 1 1 2 51 2 1 1 3 59 4 1 1 4 64 6 1 1 5 76 8 1 1 6 93 10 1 1 7 106 12 1 1 8 125 14 1 1 9 149 16 1 1 10 171 18 1 1 # ... with 568 more rows
Quando le variabili da rinominare sono numerose, può forse essere più veloce usare names()
(si veda Rinominare le variabili):
names(ChickWeight) <- c("Peso", "Tempo", "Pollo", "Dieta")
Vedi: RDocumentation