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

Einen Kommentar hinzufügen

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