Hoe u een dataframe kunt onderverdelen op basis van een lijst met waarden in r


U kunt een van de volgende methoden gebruiken om een dataframe te subdefiniëren met een lijst met waarden in R:

Methode 1: Gebruik Base R

 df_new <- df[df$my_column %in% vals,]

Methode 2: gebruik dplyr

 library (dplyr)

df_new <- filter(df, my_column %in% vals)

Methode 3: Gebruik data.table

 library (data.table)

df_new <- setDT(df, key=' my_column ')[J(vals)]

De volgende voorbeelden laten zien hoe u elk van deze methoden in de praktijk kunt gebruiken met het volgende dataframe 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

Methode 1: subset van dataframe per lijst met waarden in R-basis

De volgende code laat zien hoe u het gegevensframe kunt onderverdelen, zodat het alleen rijen met een ‚A‘- of ‚C‘-waarde in de teamkolom bevat:

 #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

Het resulterende gegevensframe bevat alleen rijen met de waarde ‚A‘ of ‚C‘ in de kolom Team .

Merk op dat we in dit voorbeeld basis R-functies hebben gebruikt, zodat we geen extra pakketten hoefden te laden.

Methode 2: Dataframe-subset per lijst met waarden in dplyr

De volgende code laat zien hoe u het dataframe kunt subsetten zodat het alleen rijen met de waarde ‚A‘ of ‚C‘ in de teamkolom bevat met behulp van de functie filter() uit het dplyr- pakket:

 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

Het resulterende gegevensframe bevat alleen rijen met de waarde ‚A‘ of ‚C‘ in de kolom Team .

Methode 3: Subset het dataframe op basis van een lijst met waarden in data.table

De volgende code laat zien hoe u het dataframe zo kunt indelen dat het alleen rijen met een ‚A‘- of ‚C‘-waarde in de teamkolom bevat met behulp van functies in het data.table- pakket:

 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

Het resulterende gegevensframe bevat alleen rijen met de waarde ‚A‘ of ‚C‘ in de kolom Team .

Gerelateerd: Hoe de %in% operator in R te gebruiken (met voorbeelden)

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:

Hoe u een dataframe kunt onderverdelen op factorniveaus in R
Subdefiniëren op basis van een datumbereik in R
Hoe een subset van een dataframe in R te plotten

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert