Come sottoimpostare un frame di dati tramite un elenco di valori in r
È possibile utilizzare uno dei seguenti metodi per sottodefinire un frame di dati tramite un elenco di valori in R:
Metodo 1: utilizzare Base R
df_new <- df[df$my_column %in% vals,]
Metodo 2: usa dplyr
library (dplyr)
df_new <- filter(df, my_column %in% vals)
Metodo 3: utilizzare data.table
library (data.table)
df_new <- setDT(df, key=' my_column ')[J(vals)]
Gli esempi seguenti mostrano come utilizzare nella pratica ciascuno di questi metodi con il seguente frame di dati in R:
#create data frame
df <- data. frame (team=c('A', 'B', 'B', 'B', 'C', 'C', 'C', 'D'),
points=c(12, 22, 35, 34, 20, 28, 30, 18),
assists=c(4, 10, 11, 12, 12, 8, 6, 10))
#view data frame
df
team points assists
1 to 12 4
2 B 22 10
3 B 35 11
4 B 34 12
5 C 20 12
6 C 28 8
7 C 30 6
8 D 18 10
Metodo 1: sottoinsieme del frame di dati mediante elenco di valori in R base
Il codice seguente mostra come sottoimpostare il frame di dati in modo che contenga solo righe con un valore “A” o “C” nella colonna del team :
#define values to subset by vals <- c(' A ', ' C ') #subset data frame to only contain rows where team is 'A' or 'C' df_new <- df[df$team %in% vals,] #view results df_new team points assists 1 to 12 4 5 C 20 12 6 C 28 8 7 C 30 6
Il frame di dati risultante contiene solo righe che hanno un valore “A” o “C” nella colonna Team .
Tieni presente che in questo esempio abbiamo utilizzato le funzioni R di base, quindi non abbiamo dovuto caricare pacchetti aggiuntivi.
Metodo 2: sottoinsieme di dataframe per elenco di valori in dplyr
Il codice seguente mostra come sottoimpostare il frame di dati per contenere solo righe con un valore “A” o “C” nella colonna team utilizzando la funzione filter() dal pacchetto dplyr :
library (dplyr) #define values to subset by vals <- c(' A ', ' C ') #subset data frame to only contain rows where team is 'A' or 'C' df_new <- filter(df, team %in% vals) #view results df_new team points assists 1 to 12 4 5 C 20 12 6 C 28 8 7 C 30 6
Il frame di dati risultante contiene solo righe che hanno un valore “A” o “C” nella colonna Team .
Metodo 3: sottoimposta il dataframe in base all’elenco di valori in data.table
Il codice seguente mostra come sottoimpostare il frame di dati per contenere solo righe con un valore “A” o “C” nella colonna team utilizzando le funzioni nel pacchetto data.table :
library (data.table) #define values to subset by vals <- c(' A ', ' C ') #subset data frame to only contain rows where team is 'A' or 'C' df_new <- setDT(df, key=' team ')[J(vals)] #view results df_new team points assists 1: A 12 4 2: C 20 12 3: C 28 8 4: C 30 6
Il frame di dati risultante contiene solo righe che hanno un valore “A” o “C” nella colonna Team .
Correlato: Come utilizzare l’operatore %in% in R (con esempi)
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in R:
Come sottoimpostare un frame di dati in base ai livelli di fattore in R
Come sottodefinire in base a un intervallo di date in R
Come tracciare un sottoinsieme di un frame di dati in R