Come dividere un frame di dati in r (con esempi)


È possibile utilizzare uno dei tre metodi seguenti per dividere un frame di dati in più blocchi di dati più piccoli in R:

Metodo 1: dividere manualmente il frame di dati in base ai valori delle righe

 #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), ]

Metodo 2: dividere il frame di dati in n frame di dati di uguale dimensione

 #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)))

Metodo 3: dividere il frame di dati in base al valore della colonna

 #split data frame based on particular column value
df1 <- df[df$column_name == 0, ]
df2 <- df[df$column_name != 0, ]

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con il seguente frame di dati:

 #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

Metodo 1: dividere manualmente il frame di dati in base ai valori delle righe

Il codice seguente mostra come dividere un frame di dati in due blocchi di dati più piccoli, il primo contenente le righe da 1 a 4 e il secondo contenente le righe da 5 all’ultima riga:

 #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

Metodo 2: dividere il frame di dati in n frame di dati di uguale dimensione

Il codice seguente mostra come dividere un frame di dati in n frame di dati di uguale dimensione:

 #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

Il risultato sono tre frame di dati di uguale dimensione.

Metodo 3: dividere il frame di dati in base al valore della colonna

Il codice seguente mostra come dividere un frame di dati in due frame di dati in base al valore di una colonna specifica:

 #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

Si noti che df1 contiene tutte le righe in cui “leads” era uguale a zero nel frame di dati originale e df2 contiene tutte le righe in cui “leads” era uguale a uno nel frame di dati originale.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in R:

Come unire più frame di dati in R
Come impilare le colonne del frame di dati in R
Come aggiungere una colonna al frame di dati in base ad altre colonne in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *