So teilen sie einen datenrahmen in r (mit beispielen)
Sie können eine der folgenden drei Methoden verwenden, um einen Datenrahmen in mehrere kleinere Datenblöcke in R aufzuteilen:
Methode 1: Teilen Sie den Datenrahmen manuell basierend auf den Zeilenwerten auf
#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: Teilen Sie den Datenrahmen in n Datenrahmen gleicher Größe
#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: Teilen Sie den Datenrahmen basierend auf dem Spaltenwert auf
#split data frame based on particular column value df1 <- df[df$column_name == 0, ] df2 <- df[df$column_name != 0, ]
Die folgenden Beispiele zeigen, wie jede Methode in der Praxis mit dem folgenden Datenrahmen verwendet wird:
#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: Teilen Sie den Datenrahmen manuell basierend auf den Zeilenwerten auf
Der folgende Code zeigt, wie ein Datenrahmen in zwei kleinere Datenblöcke aufgeteilt wird, wobei der erste die Zeilen 1 bis 4 und der zweite die Zeilen 5 bis zur letzten Zeile enthält:
#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: Teilen Sie den Datenrahmen in n Datenrahmen gleicher Größe
Der folgende Code zeigt, wie man einen Datenrahmen in n Datenrahmen gleicher Größe aufteilt:
#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
Das Ergebnis sind drei Datenrahmen gleicher Größe.
Methode 3: Teilen Sie den Datenrahmen basierend auf dem Spaltenwert auf
Der folgende Code zeigt, wie ein Datenrahmen basierend auf dem Wert einer bestimmten Spalte in zwei Datenrahmen aufgeteilt wird:
#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
Beachten Sie, dass df1 alle Zeilen enthält, in denen „leads“ im ursprünglichen Datenrahmen gleich Null war, und df2 alle Zeilen enthält, in denen „leads“ im ursprünglichen Datenrahmen gleich eins war.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in R ausgeführt werden:
So führen Sie mehrere Datenrahmen in R zusammen
So stapeln Sie Datenrahmenspalten in R
So fügen Sie dem Datenrahmen eine Spalte basierend auf anderen Spalten in R hinzu