Een dataframe in r splitsen (met voorbeelden)
U kunt een van de volgende drie methoden gebruiken om een dataframe op te splitsen in meerdere kleinere datablokken in R:
Methode 1: Splits het dataframe handmatig op basis van rijwaarden
#define first n rows to include in first data frame n <- 4 #split data frame into two smaller data frames df1 <- df[row. names (df) %in% 1:n, ] df2 <- df[row. names (df) %in% (n+1):nrow(df), ]
Methode 2: Verdeel het dataframe in n dataframes van gelijke grootte
#define number of data frames to split into n <- 3 #split data frame into n equal-sized data frames split(df, factor(sort(rank(row. names (df)) %% n)))
Methode 3: Splits het dataframe op basis van de kolomwaarde
#split data frame based on particular column value df1 <- df[df$column_name == 0, ] df2 <- df[df$column_name != 0, ]
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met het volgende dataframe:
#create data frame df <- data. frame (ID=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), sales=c(7, 8, 8, 7, 9, 7, 8, 9, 3, 3, 14, 10), leads=c(0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0)) #view data frame df Sales lead ID 1 1 7 0 2 2 8 0 3 3 8 1 4 4 7 1 5 5 9 0 6 6 7 1 7 7 8 1 8 8 9 0 9 9 3 1 10 10 3 0 11 11 14 1 12 12 10 0
Methode 1: Splits het dataframe handmatig op basis van rijwaarden
De volgende code laat zien hoe u een dataframe in twee kleinere datablokken kunt splitsen, waarbij de eerste de regels 1 tot en met 4 bevat en de tweede de regels 5 tot en met de laatste regel bevat:
#define row to split on
n <- 4
#split into two data frames
df1 <- df[row. names (df) %in% 1:n, ]
df2 <- df[row. names (df) %in% (n+1):nrow(df), ]
#view resulting data frames
df1
Sales lead ID
1 1 7 0
2 2 8 0
3 3 8 1
4 4 7 1
df2
Sales lead ID
5 5 9 0
6 6 7 1
7 7 8 1
8 8 9 0
9 9 3 1
10 10 3 0
11 11 14 1
12 12 10 0
Methode 2: Verdeel het dataframe in n dataframes van gelijke grootte
De volgende code laat zien hoe u een dataframe kunt verdelen in n dataframes van gelijke grootte:
#define number of data frames to split into n <- 3 #split data frame into n equal-sized data frames split(df, factor(sort(rank(row. names (df)) %% n))) $`0` Sales lead ID 1 1 7 0 2 2 8 0 3 3 8 1 4 4 7 1 $`1` Sales lead ID 5 5 9 0 6 6 7 1 7 7 8 1 8 8 9 0 $`2` Sales lead ID 9 9 3 1 10 10 3 0 11 11 14 1 12 12 10 0
Het resultaat is drie dataframes van gelijke grootte.
Methode 3: Splits het dataframe op basis van de kolomwaarde
De volgende code laat zien hoe u een dataframe in twee dataframes kunt splitsen op basis van de waarde van een specifieke kolom:
#split data frame based on particular column value df1 <- df[df$leads == 0, ] df2 <- df[df$leads != 0, ] #view resulting data frames df1 Sales lead ID 1 1 7 0 2 2 8 0 5 5 9 0 8 8 9 0 10 10 3 0 12 12 10 0 df2 Sales lead ID 3 3 8 1 4 4 7 1 6 6 7 1 7 7 8 1 9 9 3 1 11 11 14 1
Merk op dat df1 alle rijen bevat waar „leads“ gelijk was aan nul in het originele dataframe en df2 alle rijen bevat waar „leads“ gelijk was aan één in het originele dataframe.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in R kunt uitvoeren:
Hoe meerdere dataframes samen te voegen in R
Dataframekolommen stapelen in R
Hoe u een kolom aan een dataframe kunt toevoegen op basis van andere kolommen in R